如何在 SSRS 报告中使用多个 iif?
How can I use multiple iif in SSRS report?
我有一个 IIF 表达式,我正在尝试使用...
=iif(sum(Fields!Actual.Value) > 0,"增加",
iif(sum(Fields!Actual.Value) < 0,"减少",
iif(sum(Fields!Actual.Value) = 0,"无变化","None")))
或 iif(isnothing(sum(Fields!Actual.Value)),"N/ap","None")
这让我出错。还有其他解决方法吗?
在这种情况下,使用 SWITCH 会容易得多。 Switch 使用成对的表达式来计算值 return。它更容易阅读并且通常不需要嵌套。
所以对于你的例子,你可以做这样的事情。
=SWITCH (
SUM(Fields!Actual.Value) > 0, "Increased",
SUM(Fields!Actual.Value) < 0, "Decreased",
SUM(Fields!Actual.Value) = 0, "No Change",
ISNOTHING(SUM(Fields!Actual.Value)) , "N/ap",
True, "None"
)
最后的 True 基本上就像一个 ELSE,它捕获任何与前面的表达式不匹配的内容。
SWITCH 在找到第一个匹配项时停止,因此根据结果,您可能必须更改顺序或每次检查但从这里开始并查看结果。
我有一个 IIF 表达式,我正在尝试使用...
=iif(sum(Fields!Actual.Value) > 0,"增加",
iif(sum(Fields!Actual.Value) < 0,"减少",
iif(sum(Fields!Actual.Value) = 0,"无变化","None")))
或 iif(isnothing(sum(Fields!Actual.Value)),"N/ap","None")
这让我出错。还有其他解决方法吗?
在这种情况下,使用 SWITCH 会容易得多。 Switch 使用成对的表达式来计算值 return。它更容易阅读并且通常不需要嵌套。
所以对于你的例子,你可以做这样的事情。
=SWITCH (
SUM(Fields!Actual.Value) > 0, "Increased",
SUM(Fields!Actual.Value) < 0, "Decreased",
SUM(Fields!Actual.Value) = 0, "No Change",
ISNOTHING(SUM(Fields!Actual.Value)) , "N/ap",
True, "None"
)
最后的 True 基本上就像一个 ELSE,它捕获任何与前面的表达式不匹配的内容。
SWITCH 在找到第一个匹配项时停止,因此根据结果,您可能必须更改顺序或每次检查但从这里开始并查看结果。