SSRS中的IIF返回错误

时间:2016-05-11 20:58:27

标签: reporting-services

我有一个SSRS报告在该字段中抛出#ERROR#。

我将停机时间与总时间...停机时间/总时间进行比较,以获得所有时间内停机时间的百分比。

原始代码是:

=Sum(Fields!PrevYear_Total_Down_Time.Value)
/
Sum(Fields!PrevYear_Total_Time.Value)

这引发了一个#ERROR#,我认为这是由于" Sum(Fields!PrevYear_Total_Time.Value)"为零或为零,所以我将代码调整为IIF语句:

=IIF(Sum (Fields!PrevYear_Total_Time.Value)=0,0,
     IIF(Sum(Fields!PrevYear_Total_Down_Time.Value)=0,0,
         Sum(Fields!PrevYear_Total_Down_Time.Value)/Sum(Fields!PrevYear_Total_Time.Value)
         )
     )

如果我用一个数字替换第二个嵌套的IIF语句,它可以工作并输出我指定的任何数字,但是,这不是我想要的。我想测试零或null,如果Total Downtime为null或0,则返回0。

2 个答案:

答案 0 :(得分:0)

通过编写传递这两个值的代码片段然后返回格式化值来解决它。

答案 1 :(得分:0)

另一种方法是在分母中加入另一个 IIF 来说明零:

=IIF(Sum(Fields!PrevYear_Total_Time.Value) = 0, 0, Sum(Fields!PrevYear_Total_Down_Time.Value))
 /
 IIF(Sum(Fields!PrevYear_Total_Time.Value) = 0, 1, Sum(Fields!PrevYear_Total_Time.Value))