代码之家  ›  专栏  ›  技术社区  ›  badpanda

当条件正确时,为什么我的IIF语句的值不是真的?

  •  0
  • badpanda  · 技术社区  · 15 年前

    这是我的声明:

    iif(sum(Fields!myfield1.Value) = 0, 0, sum(Fields!myField2.Value)/sum(Fields!myField1.Value))
    

    有什么建议吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   JC Ford    15 年前

    有可能 评估为真。正如其他注释中所提到的,您无论如何都会得到一个错误,因为iif()计算所有参数表达式,而不管测试结果如何。

    这个错误可以通过在除数中添加另一个IIF()来避免。

    iif(
        sum(Fields!myfield1.Value) = 0,
        0,
        sum(Fields!myField2.Value) / iif(
                                         sum(Fields!myfield1.Value) = 0,
                                         1,
                                         sum(Fields!myField1.Value)
                                     )
    )
    

    现在,如果myfield1为零并且没有抛出任何错误,您将得到零。

    (不过,当除数为零时,您可能应该显示“n/a”或只是一个空字符串。)

    推荐文章