用于评估SSRS中两列的iif语句

时间:2016-07-19 18:12:41

标签: reporting-services ssrs-2012 reportingservices-2005

我是SSRS的新手,我想创建一个减去两列的计算字段。但是,我在SSRS处理的每一列中都有一些空白字段,如零。如果任一字段为空,我希望SSRS创建一个n / a结果,但如果BOTH列中有值,则减去两个字段。也许是一个"如果没有"语句"

我想出了这个,但是如果两列都有空白,则只生成n / a:

=iif(Fields!Prior_A1c.Value <> 0 OR Fields!A1c.Value <> 0, (Fields!A1c.Value-Fields!Prior_A1c.Value), "n/a")

这就是我想要的样子([差异]是计算列):

 A1C       Prior A1c      Difference
   7          5              2
              6             n/a
   6                        n/a
   5          6             -1

提前谢谢。

2 个答案:

答案 0 :(得分:2)

使用Isnumeric(Fields!Prior_A1c.Value)IsNothing(Fields!Prior_A1c.Value)来测试空字符串。

另外,你的IIF逻辑并不是我应该怎么想的。你说的是,如果你的任何一列不是0,那么当你认为你想要的是空白/空时,然后使用NA,否则进行减法。我想你想要这样:

=iif(IsNothing(Fields!Prior_A1c.Value) OR IsNothing(Fields!A1c.Value),"N/A",(Fields!A1c.Value-Fields!Prior_A1c.Value))

答案 1 :(得分:0)

试试这个:

=iif(Fields!Prior_A1c.Value <> 0 OR Fields!A1c.Value <> 0, (
iif(Fields!A1c.Value=Nothing,0,Fields!A1c.Value) - iif(Fields!Prior_A1c.Value=Nothing,0,Fields!Prior_A1c.Value)
), "n/a")