SSRS 2008除以零误差和“NaN”值

时间:2013-12-23 22:45:27

标签: sql reporting-services

希望在这里得到一些帮助。我有一份报告显示4个字段:当前的年初至今销售额,之前的年初至今销售额,2美元的差额,以及2%的差异。我遇到了0分频误差和“NaN”值作为百分比字段的值。当我在当前YTD(“OrderInfoConstruction”)中有一个值但在前一个YTD(“OrderInfoClosedConstruction”)中有0时,我得到除以0的错误,因为我对%字段的表达式是:

=(Sum(Fields!PRICE_EXT.Value, "OrderInfoConstruction") - 
  Sum(Fields!PRICE_EXT.Value, "OrderInfoClosedConstruction")) / 
  Sum(Fields!PRICE_EXT.Value, "OrderInfoClosedConstruction")

和“Sum(Fields!PRICE_EXT.Value,”OrderInfoClosedConstruction“)的值为0(前一个YTD值)。对于NaN值问题,它是相同的表达式,但在这种情况下,BOTH当前和之前的YTD是如果值为0以解除除以0的错误,什么是NaN,我怎么能只将它显示为“0”?我已经找到了一些帮助但是有不知道如何采用下面的IIF声明并根据我的陈述进行调整?

=IIf(Fields!SomeField.Value = 0, 0, Fields!SomeOtherField.Value / IIf(Fields!SomeField.Value = 0, 1, Fields!SomeField.Value))

提前感谢您的帮助!!!

1 个答案:

答案 0 :(得分:0)

如果要为0/0#/0显示0,则只需将分母值检查为零即可。基本上IIf(PrevYTD = 0, 0, (CurrYTD - PrevYTD) / PrevYTD)或您的实际字段:

=IIf(Sum(Fields!PRICE_EXT.Value, "OrderInfoClosedConstruction") = 0, 0, 
  (Sum(Fields!PRICE_EXT.Value, "OrderInfoConstruction") - 
  Sum(Fields!PRICE_EXT.Value, "OrderInfoClosedConstruction")) / 
  Sum(Fields!PRICE_EXT.Value, "OrderInfoClosedConstruction"))

此外,NaN代表not a number0/0是产生它的一个操作。