【问题标题】:SSRS calculating IF THEN ELSE with nullsSSRS 用空值计算 IF THEN ELSE
【发布时间】:2015-05-29 16:35:38
【问题描述】:

我正在尝试在 SSRS 数据集中创建一个计算字段,但需要求和的字段也有空值,我无法正确计算公式。下面是对我正在尝试做的事情的描述

If value.field1 = 1 and value.field2 is not null, then
    use value.field2
otherwise
    use value.field3

我确信有一个简单的答案,但我对 SSRS 很陌生,似乎找不到正确的答案。

【问题讨论】:

    标签: reporting-services ssrs-2008 reportbuilder3.0


    【解决方案1】:

    你应该能够做这样的事情。这将检查 field1 的值以及 field2 是否为空的布尔值。

    iif(fields!field1.value = 1 and isnothing(fields!field2.value) = 0, fields!field2.value, fields!field3.value)
    

    iif() 语句是 SSRS 的结构是这样的:

    iif(条件逻辑,判断为真执行,判断为假执行)

    【讨论】:

    • 谢谢!那效果很好。但是如果我想做一些事情来达到以下效果呢?如果字段 1 为空或 0,则为空,否则为空白 (field1-field2)
    • 你只需要按照=iif( isnothing(fields!field1.value) = 1 or fields!field1.value = 0, "", (fields!field1.value - fields!field2.value))的方式做一些事情
    • 不是我想要的。返回错误#。我可能没有正确解释。让我再试一次 :-) 如果 Field3 为 null 或 = 0,然后用空白填充字段,否则从 Field4 中减去 Field3
    • 这可能更适合作为 switch 语句尝试类似=switch(isnothing(fields!field3.value) = 1, "" ,fields!field3.value = 0,"" , fields!field3.value <> 0, fields!field4.value - fields!field3.value)
    • 您也可以发布您最终使用的表达式及其产生的错误吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 2015-03-21
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多