2017-10-09 9 views
0

일반적인 ScheduledObjectID 필드를 사용하는 다중 테이블 조인을 수행하려고합니다. 최대 RunID 및 UserDueDate를 기반으로 테이블에서 여러 레코드를 선택하고 싶습니다. 어떤 도움이라도 대단히 감사하겠습니다.SQL Server 2012에서 두 개의 최대 레코드 선택 후 합류

샘플 데이터 : 원하는

ScheduledObjectID RunID UserDueDate 
------------------------------------------------- 
123    1  2017-07-16 14:26:56.263 
123    2  2017-05-16 14:26:56.250 
123    3  2017-05-16 14:26:56.233 
456    9  2017-05-16 14:26:56.217 
456    10  2017-05-16 14:26:56.200 
456    11  2017-10-07 10:19:33.873 

이 결합 데이터

ScheduledObjectID RunID UserDueDate 
------------------------------------------------- 
123    3  2017-05-16 14:26:56.233 
456    11  2017-10-07 10:19:33.873 
+0

위의 샘플 데이터를 생성하여 현재 쿼리를 추가합니다. –

답변

0

가입의 필요가 없습니다, 당신은 관계

demo here

select top 1 with ties ScheduledObjectID, RunID, UserDueDate 
from 
#tmp 
order by 
row_number() over (Partition by ScheduledObjectID order by runid desc) 
로 상위 1을 사용할 수 있습니다

의견에 따라 경찰이 작동합니다 :

select * from t1 join 
(select ScheduledObjectID,max(runid) as runid,max(userduedate) as userduedate 
from t2 

그룹을 ScheduledObjectID ) t1.somecol1 = t2.somecol에 T2 에 의해

+0

죄송합니다. 더 잘 설명해야합니다. 위의 데이터는 ScheduledObjectID 열을 통해 다른 데이터로 연결되는 조인 테이블 중 하나입니다. – dbreienrk1

+0

당신이 찾고있는 것이 있다면 편집을 확인하십시오 – TheGameiswar

+0

감사합니다! 잘됐다! – dbreienrk1