【问题标题】:iif statement that evaluates two columns in SSRS评估 SSRS 中的两列的 iif 语句
【发布时间】:2016-07-19 18:12:40
【问题描述】:

我是 SSRS 新手,我想创建一个减去两列的计算字段。但是,我在 SSRS 处理的每一列中都有一些空白字段,就像零一样。如果任一字段为空白,我希望 SSRS 创建一个 n/a 结果,但如果两列中都有值,则减去这两个字段。也许是“如果没有”的陈述”?

我想出了这个,但只有在两列都有空白时才会生成 n/a:

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

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

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

提前谢谢你。

【问题讨论】:

  • 你解决了吗?
  • 是的!你的解决方案奏效了!我感激不尽。
  • 非常感谢您的回复:)

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


【解决方案1】:

使用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))

【讨论】:

    【解决方案2】:

    试试这个:

    =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")
    

    【讨论】:

    • 谢谢。出于某种原因,这个结果与我原来的结果相同。也可能是我。不过,下面的答案确实有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多