SSRS除以零误差

时间:2017-10-24 13:19:32

标签: reporting-services ssrs-2012

我的表包含2列数字:

ORIGINAL_QTY    FINAL_QTY
120               115
1                 0
1                 1
0                 0
3                 1
4                 5

我需要以百分比的形式提取两个数字之间的差异,因此我创建了以下表达式,考虑到最终数量的减少(交换分子和分母)或0分母(更改0表示0.00001)这项工作因为我舍入到2位小数):

=IIf(Fields!ORIGINAL_QTY.Value=0, (Fields!FINAL_QTY.Value/0.00001)*100, IIf(Fields!ORIGINAL_QTY.Value>=Fields!FINAL_QTY.Value, (Fields!FINAL_QTY.Value/Fields!ORIGINAL_QTY.Value)*100, (Fields!ORIGINAL_QTY.Value/Fields!FINAL_QTY.Value)*100))

但仍然在第2行和第4行引发“错误:除以零”:

第2行:它只是0/1 = 0,没什么特别的,不应该抛出错误。 第4行:ORIGINAL_QTY = 0,但我在表达中处理了它......

我错过了什么?检查了一切,它应该工作......

1 个答案:

答案 0 :(得分:1)

或者,您可以在报告中使用以下自定义代码,然后在报告中调用它(右键单击报告,报告属性 - >代码

Public Shared Function VarPercent(ByVal Standard As Decimal, ByVal Actual As Decimal) As Decimal
If Actual = 0 Then
Return 0
End If
If Standard = 0 Then
Return 0
End If
Return (Standard / Actual )
End Function

然后你可以在你的报告(你要分开的地方)中这样称呼它

Code.VarPercent (Fields!numerator.Value, Fields!denominator.Value)