0

这是我的声明:

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

有什么建议么?

4

1 回答 1

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' 或只显示一个空字符串。)

于 2010-05-14T19:43:07.643 回答