2017-10-09 88 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

無需加盟,您可以用頂部1與領帶

demo here

select top 1 with ties ScheduledObjectID, RunID, UserDueDate 
from 
#tmp 
order by 
row_number() over (Partition by ScheduledObjectID order by runid desc) 

按照評論這應該工作:

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

相關問題