我有一个简单的%更改公式,要在报告中实现...公式为(a-b)/ b。
问题有时是进入数据集中的b的值是空白/空...而且,SSRS似乎无法通过我正在使用的iif()
语句来准确地实现这一点。而是每当报表呈现时,对于缺少公式中b的数据的任何行项目,我都会在该单元格中看到可怕的“错误”。我正在使用的单元格中的公式如下。这里有什么问题? SSRS为什么看不到sum(b) = nothing
或isnothing(sum(b))
的评估结果为true?就像绕过公式的那一部分,然后继续进行数学运算,除以0并引发错误吗?
=iif(
isnothing(sum(Fields!BR_Quantity.Value))=true or sum(Fields!BR_Quantity.Value)=0 or sum(Fields!BR_Quantity.Value)=nothing,
nothing,
(sum(Fields!Full_Case_Quantity.Value)-sum(Fields!BR_Quantity.Value)) / sum(Fields!BR_Quantity.Value)
)
答案 0 :(得分:0)
IIF函数同时计算表达式的TRUE和FALSE部分。
在分子和分母上使用单独的IIF:
=IIF(ISNOTHING(SUM(Fields!BR_Quantity.Value)) OR SUM(Fields!BR_Quantity.Value) = 0, 0, SUM(Fields!Full_Case_Quantity.Value) - SUM(Fields!BR_Quantity.Value)
/
IIF(ISNOTHING(SUM(Fields!BR_Quantity.Value)) OR SUM(Fields!BR_Quantity.Value) = 0, 1, SUM(Fields!BR_Quantity.Value) )
这样,当分母为0或NULL时,结果表达式为0 / 1
。
金达la脚,但微软不会解决。