在SSRS中切换表达式

时间:2017-05-15 13:46:42

标签: sql-server reporting-services

我想根据价值来填充单元格。第一个表达式仅适用于LimeGreen,但适用于所有情况的IIF。为什么呢?

=Switch(
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) > 0, "LimeGreen",
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) <= 0 &
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) >= -0.05, "Yellow",
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) < -0.05, "Red")

=IIF(
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) > 0, "LimeGreen",
    IIF(Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) < 0.05, "Red", "Yellow")
)

1 个答案:

答案 0 :(得分:1)

=Switch(
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) > 0, "LimeGreen",
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) >= -0.05, "Yellow",
True, "Red")

任何高于0的都是LimeGreen。之后,-.05以上的任何东西都是黄色的。其他一切都是红色的。

由于第一次测试寻找&gt; 0,所以剩余选项都是&lt; = 0.这实际上意味着第二次测试是-.05和0之间的所有值。最后的测试是捕获所有但只会是选择值&lt; - .05。