Сбой 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
.