0

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

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

表达方式:

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

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

4

1 回答 1

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”记录为零,这将引发错误。

于 2013-01-04T17:55:18.047 回答