0

我正在尝试调试另一个开发人员创建的 SSRS 报告中的错误。据我所知,这是一个除以零的问题。报告在这里所做的只是在最后计算一个百分比。存储过程在返回结果之前将所有空值转换为零,所以我看不出这里有什么问题。有任何想法吗?

=
Sum(IIf(Fields!ConstructionTradeDesc.Value = "Journeyman", 
    Fields!BlackF.Value + Fields!HispanicF.Value + Fields!AsianPacificF.Value  + Fields!NativeAmericanF.Value + Fields!OtherF.Value, 
Nothing)) 
/ 
Sum(IIf(Fields!ConstructionTradeDesc.Value = "Journeyman" 
    and 
Fields!BlackM.Value + Fields!BlackF.Value + Fields!HispanicM.Value + Fields!HispanicF.Value + Fields!AsianPacificM.Value + Fields!AsianPacificF.Value + 
Fields!NativeAmericanM.Value + Fields!NativeAmericanF.Value + Fields!OtherM.Value + Fields!OtherF.Value > 0, 

Fields!BlackM.Value + Fields!BlackF.Value + Fields!HispanicM.Value + Fields!HispanicF.Value + Fields!AsianPacificM.Value + Fields!AsianPacificF.Value + 
Fields!NativeAmericanM.Value + Fields!NativeAmericanF.Value + Fields!OtherM.Value + Fields!OtherF.Value, 
1)) 
* 100
4

1 回答 1

1

SSRS 不会自动为您处理除以零错误,但看起来您正试图在代码中解决这个问题,这将是正确的方法。您是否在所有显示中看到任何错误 - 例如在“错误列表”窗口(您可以从“查看”菜单中打开)?

问题可能是您需要将 IIF 函数放在表达式的外部而不是内部。所以是这样的:

=
Iif(Fields!ConstructionTradeDesc.Value = "Journeyman", 
    sum(Fields!BlackF.Value + Fields!HispanicF.Value + Fields!AsianPacificF.Value  + Fields!NativeAmericanF.Value + Fields!OtherF.Value), 
Nothing)
/ 
Iif(Fields!ConstructionTradeDesc.Value = "Journeyman" 
    and 
sum(Fields!BlackM.Value + Fields!BlackF.Value + Fields!HispanicM.Value + Fields!HispanicF.Value + Fields!AsianPacificM.Value + Fields!AsianPacificF.Value + 
Fields!NativeAmericanM.Value + Fields!NativeAmericanF.Value + Fields!OtherM.Value + Fields!OtherF.Value) > 0, 

sum(Fields!BlackM.Value + Fields!BlackF.Value + Fields!HispanicM.Value + Fields!HispanicF.Value + Fields!AsianPacificM.Value + Fields!AsianPacificF.Value + 
Fields!NativeAmericanM.Value + Fields!NativeAmericanF.Value + Fields!OtherM.Value + Fields!OtherF.Value), 
1)
* 100
于 2012-07-03T17:08:43.833 回答