我正在尝试调试其他开发人员创建的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
答案 0 :(得分: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