Как СУММИРОВАТЬ значения из группы в SSRS, которые отличаются - PullRequest
0 голосов
/ 05 мая 2020

У меня есть отчет, в котором я хочу вычислить общую сумму, но игнорирую значения группы, которые имеют такое же значение. Ниже мои таблицы и данные. Столбец № пакета сгруппирован и всегда будет уникальным, но каждый уникальный пакет может иметь или не иметь одинаковые размеры. Я хочу СУММИРОВАТЬ размер (длина, ширина и высота), и в пакете № есть несколько элементов, тогда нужно учитывать только первую строку для суммирования значений, поскольку размеры останутся одинаковыми для всех элементов в одном пакете . Может ли кто-нибудь помочь мне достичь этого результата?

enter image description here

1 Ответ

0 голосов
/ 05 мая 2020

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

=SUM(IIF(Fields!RowNum.Value = 1, Fields!Length.Value, 0))

EDIT после обновления OP

Если столбец RowNum отсутствует в вашем наборе данных, вам нужно будет добавить его.

Если ваш запрос набора данных является просто скриптом, это должно быть так же просто, как что-то вроде этого ...

SELECT *
    , RownN =  ROW_NUMBER() OVER(PARTITION BY PackageNo ORDER BY Item)
 FROM myTable

Если набор данных является результатом сохраненного pro c, тогда вам, возможно, придется изменить запрос набора данных на что-то вроде

CREATE TABLE #t (PackageNo varchar(50), Length int, Width int, Height int, Item varchar(50))

INSERT INTO #t 
    EXEC myStoredProc

    SELECT *
        , RownN =  ROW_NUMBER() OVER(PARTITION BY PackageNo ORDER BY Item)
     FROM #t

Один раз выбран один из вышеперечисленных вариантов, тогда вы сможете просто применить выражение =SUM(IIF(Fields!RowN.Value = 1, Fields!Length.Value, 0)) к итоговым значениям вашего отчета.

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