代码之家  ›  专栏  ›  技术社区  ›  Nathan Koop

SUM仍包含抑制值

  •  1
  • Nathan Koop  · 技术社区  · 14 年前

    我有一份报告,其中包含一些有限的重复信息,可能有多个日期,但我希望美元值只显示在第一个项目上。

    IE:

    项目1-2010年8月3日-成本1000美元
    项目1-2010年8月4日(成本抑制)
    项目2-2010年8月3日-100美元
    项目3-2010年8月4日-200美元

    汇总后,应显示为1300美元,但显示为2300美元。

    我通过以下公式抑制了成本部分:

    (
    if (Previous({MyReportData;1.MyItemId}) = {MyReportData;1.MyItemId}) then
        true
    else
        false
    )
    

    这个公式很好用。

    我试图创建一个公式来执行一个自定义求和,它将排除重复的项,但它一直说“这个字段不能汇总。

    有什么想法吗?

    2 回复  |  直到 13 年前
        1
  •  2
  •   John Hartsock    14 年前

    你有两个选择

    1. 修改您的SQL以只引入您想要的数据。你显然不想参加2010年8月4日的世界杯。所以不要把它写进报告里。那么你的总结就可以按预期工作了。

    2. 创建一个运行汇总,并使用与抑制公式相反的公式对行的更改进行计算。

        2
  •  0
  •   Ryan    14 年前

    另一种选择是使用全局变量,使用要抑制的逆条件跟踪求和。这应该比使用Crystal的“运行总计”或“摘要”字段更好,从性能上讲。

    尽管如此,我还是假设使用SQL表达式简单地按itemID选择日期最早的行会更快,并且可以避免crystal不得不在数据中翻阅数据。