3

У меня есть отчет SSRS, который я хочу суммировать значения поля, но только если значение другого поля равно 1, так как я сделал отчет, выводят номер строки для каждого ряд. Баскиально, я пытаюсь суммировать различные значения, чтобы придумать общее количество. Снимок экрана ниже. Я получаю сообщение об ошибке для заказов с более чем 1 предметом. Мое выражение, используемое для вычисления Ship затрат (красный текст) выглядит следующим образомВыражение в SSRS не работает как ожидалось

=SUM(IIF(Fields!RowNumber.Value = 1, Fields!WEIGHT.Value, 0)) 

enter image description here

Но я получаю #Error. Ячейка с текстом #Error должна читать 11,25 доллара.

+0

Как вы гарантируете, что выражение будет выглядеть только для строк для данного ордера #? –

+0

Я считаю, что это связано с группировкой в ​​отчете, строка сгруппирована по порядку #. Правильное значение отображается для второго порядка, поэтому, похоже, он смотрит на данный заданный порядок. –

+1

Похоже на проблему _formatting_. Каков тип поля Fields! Weight.Value? Попробуйте это '= SUM (IIF (Fields! RowNumber.Value = 1, CDBL (Fields! WEIGHT.Value), 0.0))'. Если это не работает, попробуйте '= SUM (CDBL (Fields! WEIGHT.Value))' и посмотрите, все ли вы по-прежнему получаете ошибки и атакуете проблему. –

ответ

3

Я думаю, что вы, вероятно, получить несоответствие типов данных в совокупности; SSRS не может обрабатывать неявные преобразования в этих выражениях IIf/aggregate.

В вашем выражении 0 будет рассматриваться как INT, и предполагая, что базовый тип данных Fields!WEIGHT.Value является десятичной или двойной, это вызовет ошибку во время выполнения - если вы предварительно в ЗАЯВКАХ он должен на самом деле отобразите ошибку.

Чтобы обойти это, вы должны убедиться, что оба IIf результаты имеют один и тот же тип данных - что-то вроде:

=SUM(IIF(Fields!RowNumber.Value = 1, Fields!WEIGHT.Value, 0.0)) 

или

=SUM(IIF(Fields!RowNumber.Value = 1, Fields!WEIGHT.Value, CDec(0))) 

или

=SUM(IIF(Fields!RowNumber.Value = 1, Fields!WEIGHT.Value, CDbl(0))) 

В зависимости от базовый тип данных, возможно, вам придется попробовать несколько комбинаций, но, надеюсь, один из примеров es будет работать правильно,

+0

Эй @ Иэн Престон, вот и все! Это была проблема преобразования данных. Второе заявление, которое ты мне дал, сделал трюк. Большое спасибо, такая простая проблема, которая сводила меня с ума. –