Как суммировать только итоги группы?

Я пытаюсь суммировать только итоги группы 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))

2 ответа

Решение

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

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

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

введите описание изображения здесь

введите описание изображения здесь

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

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

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

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

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

введите описание изображения здесь

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

( Sum(CDbl(Fields!Field_1.Value)) работает.

Образ

Другие вопросы по тегам