Я не уверен, что SSRS глуп, или я (я склоняюсь к обоим).
У меня есть набор данных, который (в результате соединений и т. д.) имеет несколько столбцов с одинаковыми значениями, дублированными в каждой строке (довольно стандартный материал базы данных):
rid cnt bid flg1 flg2
-------------------------------
4 2882 1 17 3
5 2784 1 17 3
6 1293 1 17 3
18 9288 2 4 9
20 762 2 4 9
Отчетность на основе cnt
достаточно проста. Я также могу сделать табликс, который показывает следующее:
bid flg1 flg2
------------------
1 17 3
2 4 9
(Где табликс сгруппирован по Fields!bid.Value
, а столбцы просто Fields!flg1.Value
и Fields!flg2.Value
соответственно.)
Чего я не могу понять, так это того, как отобразить сумму этих значений — в частности, я хочу показать, что сумма flg1 равна 21, а сумма flg2 равна 12 — не сумма каждую строку в наборе данных (считая каждое значение более одного раза).
(Обратите внимание, что я не ищу сумму различных значений, так как они могут быть не уникальными. Мне нужна сумма одного значения из каждой группы bid
, потому что это из объединения таблиц, поэтому они всегда будут иметь одно и то же значение.)
Если возможно, я также хотел бы иметь возможность выполнять аналогичные вычисления на верхнем уровне отчета (не в каком-либо табликсе); хотя я бы согласился скрыть строку подробностей, если это единственный способ.
Очевидно, что Sum(Fields!flg1.Value)
не является ответом, так как он либо возвращает 51 (если находится в первой строке внутри группы), либо 59 (если вне ее). Я также пробовал Sum(Fields!flg1.Value, "bid")
, но это не считалось допустимой областью действия. Я также пробовал Sum(First(Fields!flg1.Value, "bid"))
, но, по-видимому, вам не разрешено суммировать первые значения по какой-то странной причине (и, возможно, в любом случае у вас была такая же проблема с областью действия).
Использование Sum(Max(Fields!flg1.Value, "bid"))
действительно работает, но кажется неправильным. Есть лучший способ это сделать?
(Связано: есть ли хороший способ сохранить результат вычисления этого, чтобы позже я мог также показать сумму этих итогов без еще более сложного выражения?)