Сводка по группам SSRS - Макс не работает - PullRequest
0 голосов
/ 22 января 2019

Это данные, которые возвращаются из базы данных

Выборка данных за один сезон (в отчете возвращаются значения для двух):

enter image description here

То, что вы видите, это группировка по сезону, театру, затем по номеру спектакля и, наконец, у нас есть столбцы доходов и билетов.

Отчет SSRS имеет три уровня группирования. Pkg (еще один идентификатор, который группирует ниже), место проведения - столбец места и perf_desc - столбец описания, связанный с perf_no.

Похоже на это -

enter image description here

Что мне нужно сделать, это взять столбец дохода (уникальное значение) для каждого исполнения и вернуть его в отдельный столбец - поэтому я использую эту формулу.

 sum(Max(Fields!perf_tix.Value, "perf_desc"))

Это прекрасно работает, дает мне общее уникальное значение для каждого исполнения и суммирует их по уровню pkg.

Подвох - когда мне нужно вытащить данные по сезонам. Я создал отдельный столбец выглядит так

enter image description here

это желтый, потому что он невидим и на него ссылаются в другом месте. Но выражение выглядит так: если значение Season = к параметру (значение прошедшего сезона) - тогда в основном выведите сумму каждого из значений tix и суммируйте их. Это также прекрасно работает в нижней строке - строке, где существует группировка для pkg - в моем случае светло-голубой.

=iif(Fields!season.Value = Parameters!season.Value, Sum(Max(Fields!perf_tix.Value, "perf_desc")), 0)

Тем не менее, строка выше - родительская строка / строка заголовка дает мне сумму значений двух сезонов. По сути, все это складывается. Это не то, что я хочу, а также почему он это делает. Значение сезона не равно переданному параметру для значения второго сезона, поэтому почему оно добавляет его к сгруппированному значению.

Как мне это исправить ??

1 Ответ

0 голосов
/ 23 января 2019

Поскольку ваша агрегатная функция находится внутри вашей функции IIF, оценивается только первая запись в вашем наборе данных. Если первый соответствует параметру, все записи будут включены.

Это может сработать:

=IIF(Fields!season.Value = Parameters!season.Value, Sum(Max(Fields!perf_tix.Value, "perf_desc")), 0)

Возможно, было бы лучше, если бы ваш отчет также группировался на объекте, в противном случае вы можете считать все значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...