SSRS 2012 除以零错误

SSRS 2012 Divide By Zero Error

我已经通读了答案并更新了我的表达方式,但我仍然在预算为 0 的行中收到#Error。

所有百分比计算正确。

=IIF(SUM(字段!CM_Budget.Value,"Name")=0,0,SUM(字段!MTD_Actual.Value,"Name")/SUM(字段! CM_Budget.Value,"Name"))

这是因为 SSRS 总是对两个表达式求值。 你必须把你的表达分成两部分。

=IIF(SUM(Fields!CM_Budget.Value,"Name")=0,0,SUM(Fields!MTD_Actual.Value,"Name"))
/
IIF(SUM(Fields!CM_Budget.Value,"Name")=0,1,SUM(Fields!CM_Budget.Value,"Name"))

另一种方法是使用如下自定义代码

Public Function Divider (ByVal Dividend As Double, ByVal Divisor As Double)
If IsNothing(Divisor) Or Divisor = 0
  Return Nothing
Else
  Return Dividend/Divisor
End If
End Function 

然后你可以这样写你的表达式:

=Code.Divider(SUM(Fields!MTD_Actual.Value,"Name"),SUM(Fields!CM_Budget.Value,"Name"))

我通常更喜欢第二种方式,让我的表达式更易读