SSRS 2008:iif IsNan语句错误的参数数量错误

时间:2010-06-22 18:39:42

标签: reporting-services iif-function

当我使用下面的表达式运行SSRS报告时,我收到一条错误消息:错误的参数数量。我在这个错误中得到了这个错误.IsNaN,我的陈述的一部分。我不明白我错过了什么。有人可以帮忙吗?

= IIF(

        (

              (


                    (Sum(Fields!UNITS.Value, "SFY2011_SW_T19") / Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2011_SW_T19"))

                    - (Sum(Fields!UNITS.Value, "SFY2010_SW_T19") / Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2010_SW_T19"))

              )

        / (Sum(Fields!UNITS.Value, "SFY2010_SW_T19") / Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2010_SW_T19"))

        ).IsNaN,



        0.00,



        (

              (

                    (Sum(Fields!UNITS.Value, "SFY2011_SW_T19") / Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2011_SW_T19"))

                    - (Sum(Fields!UNITS.Value, "SFY2010_SW_T19") / Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2010_SW_T19"))

              )

              / (Sum(Fields!UNITS.Value, "SFY2010_SW_T19") / Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2010_SW_T19"))

        )

  )

2 个答案:

答案 0 :(得分:1)

特定的错误可能是因为你应该使用IsNaN(Value)而不是Value.IsNaN,但是如果你试图使用Iif()来防止除零错误,我会给你一个奖金提示

这样做......

=Iif(CouldBeZero = 0, 0, SomeValue / CouldBeZero)

...当CanBeZero = 0时将始终抛出错误,因为首先计算除法并将结果传递给Iif()函数。

而是这样做......

=Iif(CouldBeZero = 0, 0, SomeValue / Iif(CouldBeZero = 0, 1, CouldBeZero))

...确保划分工作,并显示零。

答案 1 :(得分:0)

不要在.IsNAN之前获得那么大的复杂值,而只需使用Single.IsNAN