Grouping 禁止显示在不同组中的数据,并保留具有最新日期的数据

Grouping 禁止显示在不同组中的数据,并保留具有最新日期的数据,grouping,crystal-reports-2010,Grouping,Crystal Reports 2010,我的报告需要对一组数据进行分组和计数,当数据以相同的ID和类型出现在不同的组中,但日期和决策不同时,它需要抑制不具有最新日期的数据,并且总计数不应包括抑制的数据。你能帮我做这个吗 原始数据 ID TYPE DATE DECISION 1111 F 12/01/2016 Approved 1122 E 3/0

我的报告需要对一组数据进行分组和计数,当数据以相同的ID和类型出现在不同的组中,但日期和决策不同时,它需要抑制不具有最新日期的数据,并且总计数不应包括抑制的数据。你能帮我做这个吗

原始数据

   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
在我通过决策对数据进行分组后:

第1组-批准

   ID              TYPE         DATE               DECISION
  1111              F           12/01/2016         Approved
  1122              E           3/02/2016          Approved
ID              TYPE            DATE
  1122              E           3/02/2016
第2组-拒绝

ID              TYPE            DATE
  1111              F           23/01/2016          Refused
  1133              G           3/07/2016           Refused
   ID              TYPE         DATE
  1111              F           23/01/2016
  1133              G           3/07/2016
身份证总计数:4

预期结果:

第1组-批准

   ID              TYPE         DATE               DECISION
  1111              F           12/01/2016         Approved
  1122              E           3/02/2016          Approved
ID              TYPE            DATE
  1122              E           3/02/2016
第2组-拒绝

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

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

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

有关配置条件详细信息抑制的信息,请参阅本文

条件详细信息抑制通过向组中的每条记录添加一个数字来工作。您可以使用记录排序专家来确定哪个记录的编号为“1”,然后在记录编号大于1时取消显示详细信息

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

如果此报告的目标是获取聚合数据,那么这种方法就可以了,因为您可以创建运行总计,在记录被“批准”或拒绝时对记录进行计数,即使不使用任何决策分组


编辑:此运行总数将统计所有记录(ID 1111将统计两次)。SQL命令是获取所需内容的最干净的方法。。。另一种选择可能是使用变量。我会研究的。

谢谢你修复我的样本数据Smita,我上传表格的屏幕截图时遇到问题,如图所示:'(您能否仅从数据库中获取最新批准的数据,或者所有计算都需要在ReportHi@ItiTyagi中显示抱歉,我没有理解您的意思?通过使用分组和最大值从数据库中获取最新记录。感谢@ItiTyagi的回复,我尝试了它,但它不起作用,因为需要在不同的gro中选择最新的日期数据。)ups,最大值只能在一个组内工作,但不能跨多个组。感谢@Aron的详细回复。用户的请求非常复杂,很难通过crystal report实现,但他们只需要crystal report格式的请求。我最终通过选择每个决策来使用运行总计来获得他们的总数(与您上次建议的方法相同)并抑制具有相同ID和类型但不具有最新日期的数据(我首先按ID、类型和日期降序排列所有数据)。在这种情况下,他们无法查看每种决策类型中的详细数据,但他们得到了对他们来说最重要的总计数。我想使用变量,但我对crystal report仍然是新手,在我过去的任何报告中都从未使用过变量,即使在互联网上有帖子显示我无法关联的变量和cr为这份报告吃一个:(你的答案非常有用,我相信我会在我未来的报告中大量使用它们。再次感谢@Aron。那太好了-我很高兴它有帮助。我花了一些时间研究如何使用变量来实现这一目标,但由于crystal使用的执行顺序(如果你经常使用crystal,需要研究一些东西),您不能在运行total formula中使用变量。我无法使其工作。如果您最终需要一个变量,请随时发布新问题。它们对于向子报表传递数据和从子报表传递数据非常重要。