SSRS Условное суммирование

Поскольку wait и notify используются для реализации [condition variables] ( http://en.wikipedia.org/wiki/Monitor_ (синхронизация) #Blocking_condition_variables) , и поэтому вам нужно проверить, определенный предикат, который вы ожидаете, верен, прежде чем продолжить.

23
задан Christian Mark 7 January 2014 в 00:37
поделиться

2 ответа

Нашел ответ ....

=SUM(IIF(Fields!PART_TYPE.Value ="P",CDbl(Fields!EXT_QTY.Value * Fields!PRICE.Value), CDbl(0.0)))
34
ответ дан pedram 7 January 2014 в 00:37
поделиться

SUM не удается из-за сравнения типов - вы не можете суммировать значения разных типов, будучи выражением (вероятно, Double) с 0, Integer. Ответ MikeTWebb делает явное преобразование типов, чтобы обойти эту ошибку. Это хорошо для этого конкретного примера, являющегося суммой, однако это не даст точного результата, если вы хотите получить среднее (равное Sum / Count) значений, где тип равен P. Это потому, что 0 является значением и будет быть включенным в вычисление усреднения, когда вы действительно хотите, чтобы эти значения были исключены из расчета.

Другой вариант - использовать Nothing вместо 0:

=Sum(IIF(Fields!TYPE.Value = "P", Fields!EXT_QTY.Value * Fields!PRICE.Value, Nothing))

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

14
ответ дан Chris Latta 7 January 2014 в 00:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: