Ответ 1
Тип данных столбца "kWp" равен Decimal, поэтому вам нужно либо преобразовать значение по умолчанию в значение 0.00, либо сделать столбец двойным
SUM(iif(Fields!ProjectTypeID.Value = 2,cdbl(Fields!kWp.Value),0.00))
Я пытаюсь создать условную сумму в SQL Server Report Builder 3.0.
Мое выражение выглядит следующим образом:
=Sum(Iif(Fields!ProjectTypeID.Value=2,Fields!kWp.Value,0))
Я надеялся, что это выражение приведет к сумме kWp всех проектов типа 2.
К сожалению, этого не должно быть. И я не могу понять, почему. Он просто возвращает результат 0, хотя я знаю, что в столбце kWp есть ненулевые значения, а столбец не содержит нулей.
Коллегу удалось получить положительный результат, заменив
Fields!kWp.Value
с
1 * Fields!kWp.Value
Но мы понятия не имеем, почему это работает, и поэтому не может действительно доверять ответу.
Как я могу заставить эту условную сумму себя вести?
Тип данных столбца "kWp" равен Decimal, поэтому вам нужно либо преобразовать значение по умолчанию в значение 0.00, либо сделать столбец двойным
SUM(iif(Fields!ProjectTypeID.Value = 2,cdbl(Fields!kWp.Value),0.00))
Чтобы получить sum
kWp всех проектов типа 2, выражение выглядит следующим образом:
=IIf(Fields!ProjectTypeID.Value=2,sum(Fields!kWp.Value),0)
Надеюсь, это поможет вам.
Чтобы получить условную сумму, вы можете попробовать это выражение
=sum(IIf(Fields!balance.Value > 0,(Fields!balance.Value),0))
Он суммирует только положительные числа, иначе он добавляет 0 к сумме, вы можете сделать это мудро.