我的 table 上摆满了患者/责任方/保险公司组合(例如,患者 Jim Doe 的责任方是 parent John Doe,他拥有保险公司 Aetna Insurance)。对于每种组合,他们都有一份包含多次付款的契约(Contract)。对于这个特定的表,我需要编写一个查询来查找在同一个月内具有多个契约(Contract)日期的任何母公司/RP/承运人组合。有办法做到这一点吗?
示例表:
ContPat | ContResp | ContIns | ContDue
------------------------------------------------------
53 | 13 | 27 | 2012-01-01 00:00:00.000
53 | 13 | 27 | 2012-02-01 00:00:00.000
53 | 15 | 27 | 2012-03-01 00:00:00.000
12 | 15 | 3 | 2011-05-01 00:00:00.000
12 | 15 | 3 | 2011-05-01 00:00:00.000
12 | 15 | 3 | 2011-06-01 00:00:00.000
12 | 15 | 3 | 2011-07-01 00:00:00.000
12 | 15 | 3 | 2011-08-01 00:00:00.000
12 | 15 | 3 | 2011-09-01 00:00:00.000
在此示例中,我想生成任何患者/RP/承运人组合的所有重复月份的列表。 12/15/3 组合将是此处返回的唯一行,但我正在处理数千种组合。
不确定使用GROUP BY
或类似函数是否可以实现这一点。预先感谢您的任何建议!
最佳答案
如果您只关心同一日历月中的多个条目:
SELECT
ContPat,
ContResp,
ContIns,
MONTH(ContDue) as Mo,
YEAR(ContDue) as Yr,
COUNT(*) as 'Records'
FROM
MyTable
GROUP BY
ContPat,
ContResp,
ContIns,
MONTH(ContDue),
YEAR(ContDue)
HAVING
COUNT(*) > 1
这将向您显示任何患者/责任方/保险公司/日历月组合,该月有多个记录。
关于sql - 使用 GROUP BY 多列的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11415726/