当条件正确时,为什么我的iif语句不能评估为真?

时间:2010-05-12 19:44:58

标签: sql vba reporting-services iif

这是我的陈述:

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

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

可能 评估为True。正如其他注释中所提到的,无论如何都会出现错误,因为无论测试结果如何,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'或只是一个空字符串。)