Reporting services SSRS使用空值计算IF-THEN-ELSE

Reporting services SSRS使用空值计算IF-THEN-ELSE,reporting-services,ssrs-2008,reportbuilder3.0,Reporting Services,Ssrs 2008,Reportbuilder3.0,我试图在SSRS数据集中创建一个计算字段,但是需要求和的字段也有空值,我无法得到正确的公式。下面是我试图做的一个描述 If value.field1 = 1 and value.field2 is not null, then use value.field2 otherwise use value.field3 我相信这有一个简单的答案,但我对SSRS非常陌生,似乎找不到正确的答案。你应该能够做这样的事情。这将检查field1的值和field2的布尔值是否为空 iif(fie

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

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

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

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

iif(fields!field1.value = 1 and isnothing(fields!field2.value) = 0, fields!field2.value, fields!field3.value)
iif()语句的结构如下:


iif(条件逻辑,计算为真时执行,计算为假时执行)

谢谢!这很有效。但是如果我想做一些如下的事情呢?如果字段1为null或0,则为空,否则(字段1-field2)您只需按照
=iif(isnothing(fields!field1.value)=1或fields!field1.value=0,”,(fields!field1.value-fields!field2.value))
的思路执行操作,而不是我所要的。返回时出错#。我可能解释得不对。让我再试一次:-)如果Field3为null或=0,则用空格填充field,否则从field4减去Field3这可能更适合作为一个switch语句,尝试类似这样的操作
=switch(isnothing(fields!Field3.value)=1,“,fields!Field3.value=0,”,fields!Field3.value 0,fields!field4.value-fields!Field3.value)
还可以发布最终使用的表达式及其生成的错误吗?