【问题标题】:Summarizing across multiple columns in sql or crystal在 sql 或 Crystal 中跨多个列进行汇总
【发布时间】:2015-07-17 01:29:14
【问题描述】:

我想知道是否有一种方法可以根据第二列的值对某一列进行不同的计数,同时仍然获得第一列的总计数。这是我面临的问题的一个例子。我有一个查询返回药房干预系统的 i-Vent 类型、ID、状态和链接的药物订单。干预措施按 i-Vent 类型分组。 Status 可以是五个值之一或 NULL。我需要能够计算有多少 i-Vent 被记录为状态的六个可能值中的每一个。

示例集可能类似于以下内容:

________________________________________________________
Type    |  ID    |  Status  |  Linked Meds
________________________________________________________

IV2PO   | 1234   | Accepted | pantoprazole IV
IV2PO   | 1234   | Accepted | pantoprazole PO
IV2PO   | 1235   | NULL     | NULL
IV2PO   | 1236   | Pending  | metoclopramide IV
IV2PO   | 1236   | Pending  | metoclopramide PO
IV2PO   | 1236   | Pending  | Pharmacy Consult - IV2PO
Consult | 1237   | Rejected | NULL
________________________________________________________

组摘要应列出总计数为 3 的 IV2PO,其中“已接受”计数为 1,“NULL”计数为 1,“待定”计数为 1;并咨询总计数为 1,“拒绝”计数为 1。

请注意由于 i-Vent 喜欢的药物/订单不止一种而导致的重复值。

我最终会在 Crystal Reports 中构建最终报告,所以如果有办法在那里获得正确的计数,那也很好。我有一个版本,它使用子报告来获取链接的药物/订单,但我想找到一个更好的替代方案,以减少运行时间和使用更少的资源。

有谁知道这样做的方法吗?

谢谢!

【问题讨论】:

  • 我不确定我是否理解这个问题。根据表格和所需结果,听起来您想要的查询永远不会显示超过 1 个结果。类型 |拒绝 |接受 |待定 |空 ________________________________________________________ IV2PO | 0 | 1 | 1 | 1 咨询 | 1 | 0 | 0 | 0 这是你想要的吗?
  • 哇!这种格式并没有像我想象的那样显示出来。
  • 您希望在哪里显示计数?
  • 本报告分为两组;类型和 ID。我需要类型组中的摘要,该摘要按类型显示总计以及每个可能状态的值。给出的示例的正确摘要是:IV2PO 总计 3,已接受 1,待处理 1,NULL 1,拒绝 0;共咨询 1 个,接受 0 个,待定 0 个,NULL 0 个,拒绝 1 个。

标签: sql-server crystal-reports-2008 summary


【解决方案1】:

在 Crystal Reports 中,您可以使用计数不同的汇总选项

创建“摘要”时,可能不希望使用计数功能。通常情况下,报表必须只返回唯一联系人记录的数量,因为其他表(即历史记录)可能包含每个客户的多行。 选择插入 |概括。 选择要汇总的字段名称。 确保选择 Distinct Count 作为摘要操作。

【讨论】:

  • 我已经尝试过这种方法,但只得到错误的答案。我可以通过这种方式使用不同的 ID 计数轻松地获得“类型”值的数量的不同计数,但它没有t 正确总结“状态”值。我尝试使用具有不同 ID 计数的运行摘要和仅查找一个“状态”值的公式,但使用此方法只能获得 0(零)或 1 的计数。
  • 我在这份报告中有两个小组。第一个是“类型”,第二个是“ID”,将每个唯一 i-Vent 的值保存在一起。请记住,我需要计算第一组摘要中“状态”的每个可能值以及按组划分的每个“类型”的总数。这是我遇到问题的“状态”摘要。由于添加“Linked Meds”会为 Type、ID 和 Status 添加重复值,因此使用变量的简单计数不适用于汇总“Status”值。
  • 我尝试使用变量来创建计数以及评估上一个条目(例如:如果 ID Previous(ID) then x:=x+1),但在 Crystal 中出现错误,说明我不能在该等式中使用汇总值。还尝试了使用 WhilePrintingRecords 函数的类似方法,错误结果相同。在示例中,我在报告中给出的正确摘要是:IV2PO 3 总计,已接受 1,待定 1,NULL 1,已拒绝 0; Consult 1 total, Accepted 0, Pending 0, NULL 0, Rejected 1. 按 Type 获取总数已经正确(ID 上的 Distinct Count),但 Status 错误。
猜你喜欢
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 2020-09-08
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 2014-04-10
  • 1970-01-01
相关资源
最近更新 更多