2012-07-10 3 views
4

환자/책임자/보험 회사 조합 (예 : Jim Doe의 책임 당사자는 보험 회사 인 Aetna Insurance를 보유한 부모 John Doe)으로 가득 찬 테이블이 있습니다. 이 조합들 각각에 대해, 그들은 여러 번 지불 한 계약을 가지고 있습니다. 이 특정 테이블의 경우 같은 달에 여러 계약 날짜가있는 상위/RP/이동 통신사 콤보를 찾기 위해 쿼리를 작성해야합니다. 이 작업을 수행 할 여지가 있습니까?GROUP BY 여러 열을 사용하는 쿼리

예 테이블 :이 예에서

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 또는 이와 유사한 기능을 사용하여 가능한지 확실하지 않습니다. 어떤 조언을 주셔서 미리 감사드립니다!

답변

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 

.

+0

YEAR 행을 추가 한 것을 보았습니다. 정말 고맙습니다. 완벽하게 일했습니다! – JamieHoward

+0

@blackairplane 그것은 처음에는 내 부분에 대한 감독이었습니다. 'YEAR' 없이는 매년 함께 행진 할 것입니다. – JNK

+0

나는 HAVING을 찾고 있었다! – Irfan