查询使用GROUP BY多列

Jam*_*ard 4 sql sql-server group-by

我有一张满是患者/责任方/保险公司组合的表(例如,患者Jim Doe的责任方是父母John Doe,他有保险公司Aetna Insurance).对于这些组合中的每一种,他们都有一份有多笔付款的合同.对于这个特定的表,我需要编写一个查询来查找在同一个月有多个合约日期的任何父/ 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
Run Code Online (Sandbox Code Playgroud)

在此示例中,我想生成任何患者/ RP /运营商组合的所有重复月份的列表.12/15/3组合将是这里返回的唯一行,但我正在使用数千种组合.

不确定是否可以使用GROUP BY或类似的功能.提前感谢任何建议!

JNK*_*JNK 9

如果您关心的是同一日历月中的多个条目:

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
Run Code Online (Sandbox Code Playgroud)

这将显示任何患者/责任方/保险人/日历月组合,其中包含该月的多个记录.