抑制出现在不同组中的数据,保留最新的数据

Suppress data which appears in different groups, and keep the one with the latest date

我的报表需要对一组数据进行分组统计,当数据出现在不同的分组中,ID和TYPE相同但DATE和DECISION不同时,需要抑制非最新日期和总数不应包括被抑制的数据。你能帮我解决这个问题吗?

原始数据

   ID              TYPE         DATE               DECISION
  1111              F           12/01/2016         Approved
  1122              E           3/02/2016          Approved
  1111              F           23/01/2016          Refused
  1133              G           3/07/2016           Refused

在分组之前,我可以隐藏第一条不是最新日期的记录:

  ID              TYPE          DATE               DECISION
  1122              E           3/02/2016          Approved
  1111              F           23/01/2016          Refused
  1133              G           3/07/2016           Refused

根据 DECISION 对数据进行分组后:

第 1 组 - 已批准

   ID              TYPE         DATE               DECISION
  1111              F           12/01/2016         Approved
  1122              E           3/02/2016          Approved

第 2 组 - 拒绝

ID              TYPE            DATE
  1111              F           23/01/2016          Refused
  1133              G           3/07/2016           Refused

ID 总数:4

预期结果:

第 1 组 - 已批准

ID              TYPE            DATE
  1122              E           3/02/2016

第 2 组 - 拒绝

   ID              TYPE         DATE
  1111              F           23/01/2016
  1133              G           3/07/2016

ID 总数:3

有几个选项 - 如果您不需要 Crystal 检索所有记录,最好的选项(从性能的角度来看)是使用自定义 SQL 命令。

Suppress Nonadjacent Duplicates in Report

如果这不是一个选项,或者您需要 crystal 来获得所有记录 (对于系统中发出的所有请求的总数 运行),你可以使用条件抑制,但你将无法通过保留当前分组来实现它。

请参阅此 post 以配置有条件的细节抑制。

有条件的详细信息抑制通过向组内的每条记录添加一个数字来实现。可以通过记录排序专家判断第1条记录是多少,如果记录数大于1则隐藏详情。

如果您首先按决策对报告进行分组,则此方法将不起作用,因为 ID 本质上是该决策的子集(因此,1111 将出现在两个决策组中)。

如果此报告的 objective 是获取汇总数据,则此方法会很好,因为您可以创建 运行 总计,在记录被“批准”或拒绝时计算记录,甚至不使用 Decision

上的任何分组

编辑:这个 运行 总数将计算所有记录(ID 1111 将被计算两次)。 SQL 命令是获得所需内容的最简洁的方法...另一种选择可能是使用变量。我研究一下。