即使使用iif()isnothing()和= 0或=无,SSRS除以0错误

问题描述 投票:0回答:1

我有一个简单的%更改公式我想在报告中实现...公式为(a-b)/ b。

问题有时b进入数据集的值是空白/空...而且SSRS似乎无法通过我正在使用的iif()语句准确地实现这一点。相反,每当报表呈现时,对于公式中缺少b的数据的任何行项目,我都会在该单元格中显示可怕的“错误”。我正在使用的单元格中的公式如下。这是什么问题?为什么SSRS不能看到sum(b) = nothingisnothing(sum(b))评估为真?这就像它绕过公式的那一部分并继续进行数学运算,除以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)
)
reporting-services iif
1个回答
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

有点跛脚,但微软不会解决它。

© www.soinside.com 2019 - 2024. All rights reserved.