SSRS 2005处理Null返回值 - 0而不是#Error

时间:2013-01-04 17:44:57

标签: reporting-services

作为SSRS 2005新手,我不清楚如何实现这一点,并且未能将此处提供的其他答案的建议纳入我的具体情况。

方案: 我按部门,性别等计算员工的平均年龄。在某些情况下,没有什么可以计算,在这种情况下,我宁愿返回零。在其当前形式中,我的表达式返回#Error。

表达式:

=Int(Avg(IIF(Fields!CustGender.Value = "F", CDec(Fields!Age.Value),Nothing),"ReportDataset"))

使该表达式返回0的正确语法/逻辑是什么?该部门中没有女性员工?如果我将“Nothing”更改为零,那么是否会抛弃Avg函数的计算?

1 个答案:

答案 0 :(得分:1)

我没试过这个,但我想如果你手动计算平均值就应该有效。总和/数:

=Int( SUM(
    IIF(
      Fields!CustGender.Value = "F",
      CDec(Fields!Age.Value),
      0
    ),"ReportDataset")
    / IIF(COUNT(
    IIF(
      Fields!CustGender.Value = "F",
      1,
      0
    ),"ReportDataset") = 0, 1,
    COUNT(
    IIF(
      Fields!CustGender.Value = "F",
      1,
      0
    ),"ReportDataset"))
    )

当然,如果“F”记录为零,则会抛出错误。