2012-02-22 2 views
1

SSMS 2008을 사용 중이고 "people_id"당 여러 "intake_dt"값이있는 레코드 만 반환하도록 TSQL 문을 쓰려고합니다. 그러나 아래의 쿼리는 작동하지 않는 것 같습니다. 어떻게 다시 작성합니까?T-SQL을 작성하는 방법 쿼리가 있습니까?

SELECT el.people_id, el.actual_date 
INTO #READMISSIONS 
from event_log_rv el 
join enrollment_view en on en.event_log_id = el.event_log_id 
join (select actual_date from event_log_rv where actual_date is not null group by actual_date having count(*) > 1) t on t.actual_date = el.actual_date 
where el.actual_date is not null 
group by el.people_id, el.actual_date 

오류가 발생하지 않지만 출력에 하나의 레코드/사람 만 표시되지 않습니다. 내가 원하는 것은 최신 actual_date를 가진 사람당 한 레코드입니다.

+0

* 그러나 아래의 쿼리는 작동하지 않는 것 같습니다. *. 어떤 방법으로 작동하지 않습니까? 오류가 있습니까? 그렇다면 오류 메시지도 게시하십시오. –

답변

0

원하는 결과가 있습니까?

SELECT el.people_id, 
    Max(el.actual_date) Max_Actual_Date 
INTO #READMISSIONS 
FROM event_log_rv el 
INNER JOIN enrollment_view en 
    ON en.event_log_id = el.event_log_id 
INNER JOIN (
    SELECT actual_date 
    FROM event_log_rv 
    WHERE actual_date IS NOT NULL 
    GROUP BY actual_date 
    HAVING COUNT(*) > 1 
    ) t 
    ON t.actual_date = el.actual_date 
GROUP BY el.people_id, 
관련 문제