Reporting services SSRS 2005处理空返回值-0而不是#错误

Reporting services SSRS 2005处理空返回值-0而不是#错误,reporting-services,Reporting Services,作为一名SSR2005新手,我不清楚如何做到这一点,并且没有成功地将这里提供的其他答案的建议融入到我的具体情况中 情景: 我正在按部门、性别等计算员工的平均年龄。在某些情况下,没有什么可计算的,在这种情况下,我宁愿返回零。在当前形式下,我的表达式返回#Error 表达方式: =Int(Avg(IIF(Fields!CustGender.Value = "F", CDec(Fields!Age.Value),Nothing),"ReportDataset")) 如果该部门没有女性员工,那么让该表

作为一名SSR2005新手,我不清楚如何做到这一点,并且没有成功地将这里提供的其他答案的建议融入到我的具体情况中

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

表达方式:

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

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

我没有尝试过这一点,但我认为如果手动计算平均值,它应该会起作用。总数/计数:

=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”记录,这将抛出一个错误。

SSRS自2005年以来已经走过了很长的路。如果这是一个选项,那就升级吧。杰米,谢谢你尝试一下。您提供的代码显示语法错误。我尝试过修补它,但无法让错误消失。我知道你想做什么,但我不知道它在哪里解决了最初的问题。Avg函数工作得很好,但是在没有返回“F”记录的情况下(如您所说)会出现问题。在这种情况下,我得到了#错误消息。新的想法:也许我可以将你的“计数”想法与IIF结合起来,其中说“如果计数为零,返回0,否则进行平均。我会在有时间处理此问题时尝试。修复了语法(几个坏参数),并添加了一个额外的IIF来处理不存在“F”记录时的除法。(我还以为你的初始数据从来没有返回过好的数据:我还以为这是因为在平均值中包含了
nothing
s。哇!好吧。这是一个进步。我需要了解一下你在做什么,这样我才能把我的想法集中起来。有趣的是,我在某些情况下得到了零,而在其他情况下得到了#错误。我需要研究一下这一点,看看为什么我会得到这个结果。)现在出现错误。显然,您的方法已经解决了应该返回零的问题。谢谢Jamie!