2014-02-10 4 views
7

Я пытаюсь суммировать только общие итоги HourTarget группы.Как суммировать только итоги группы?

  7:00  8:00 HourTarget  
Line 1 2715  1008  3224 
    A  2307  1008  3224 
    B  408  0  3224 
Line 2 2308  2432  2656 
    A  2308  2432  2656 
Line 3 2318  1622  2800 
    A  345  1258  2800 
    B  762  0  2800 
    C  1211  364  2800 

Я пытаюсь достичь 8680 в результате суммы HourTarget. Но я получаю 17504. Это потому, что HourTarget в таблице базы данных является записью для каждого отдельного продукта, работающего в этой строке, но цель связана с линией, а не с продуктом. Как я могу суммировать только общую сумму группы?

Что-то вроде этого не работает:

=Sum(Max(Fields!HourTarget.Value)) 
+0

Это конкретно SSRS 2008, а не 2008R2? –

+0

это 2008R2, извините за недоразумение – Whistler

ответ

14

Поскольку вы на SSRS 2008R2, вы можете использовать совокупность совокупной функциональности, которая была добавлена ​​в этой версии.

Вы были на правильном пути; вам просто нужно добавить значение Scope в ваше выражение.

Я использую версию данных, и построил простой Tablix:

enter image description here

enter image description here

Обратите внимание, что я создал группу под названием Line.

Чтобы получить Sum колонки MaxHourTarget, используйте выражение:

=Sum(Max(Fields!HourTarget.Value, "Line")) 

Это отрабатывает Max для каждой линии группы, а затем принимает Sum из них.

Теперь у нас есть свой необходимое значение:

enter image description here

До SSRS 2008R2 не было простой способ сделать это; обычно можно добавить дополнительный столбец в DataSet с предварительно агрегированным значением для отображения в отчете.

+0

Он работает очень хорошо, спасибо. Как использовать сумму HourTarget для условного форматирования? Когда общее число 7:00 больше или равно сумме HourTarget, зеленый еще красный. Я пробовал это, но я получаю ошибку, что это не в группе. = IIF (сумма (поля! HourCount.Value)> = сумма (Макс. (Поля! HourTarget.Value, «LineID»)), «LimeGreen», «красный») – Whistler

+0

Хорошо, я это понял. Если кому-то это нужно, я использовал: ReportItems! [Text Box name] .Value – Whistler

+0

Прохладный, просто набрал ответ. На уровне заголовка таблицы ваш первый подход должен быть в порядке (и, похоже, для меня это было хорошо для быстрого теста), но ваш тоже отличный способ, особенно если он работает для вас! –

Смежные вопросы