嗨,我在文本框上有一个 Switch 表达式来给出百分比:
=Switch(
Sum(Fields!TheoCostPriceValue.Value) = 0 AND
Sum(Fields!VarianceCostPriceValue.Value) = 0, 0,
Sum(Fields!TheoCostPriceValue.Value) = 0 Or
Sum(fields!VarianceCostPriceValue.Value) = 0, 1,
Sum(Fields!VarianceCostPriceValue.Value) > 0 AND Sum(Fields!TheoCostPriceValue.Value) <> 0,
ABS(Sum(Fields!VarianceCostPriceValue.Value) / Sum(Fields!TheoCostPriceValue.Value))
)
基本上,如果 TheoCostPriceValue 和 VarianceCostPriceValue 均为 0,则结果应为 0,如果其中任何一个为 0,则结果应为 1。如果它们都不是 0,我将检查 VarianceCostPriceValue 是正数还是负数,然后执行正确计算。
我的问题是,当我的 TheoCostPriceValue 为 0 且 VarianceCostPriceValue 为 2.35 时,表达式返回 #Error,而不是 100%(这是我所期望的)。
我看不到我的开关有任何问题,但是为什么它会返回 #Error 而不是 100%?
我正在使用 SQL 报告服务 2008。
经过一番实验,我发现添加后它只返回#Error:
ABS(Sum(Fields!VarianceCostPriceValue.Value) / Sum(Fields!TheoCostPriceValue.Value)),
在此之前它工作正常,如果我把它变成一个像 0.5 这样的值,它就可以正常工作。