如何提取具有最低時間值的多行中的第一條記錄。如何獲取MSSQL中每個重複行只有一條記錄
是這樣的:
PersNr | Name | Day | From | To | TaskNr
------------------------------------------------
1000 Peter 2017-10-16 25050 -2 110
1001 Emily 2017-10-16 25038 -2 110
1010 Greg 2017-10-16 28306 31371 120
1010 Greg 2017-10-16 31371 -2 150
1012 Jon 2017-10-16 24805 26716 170
1012 Jon 2017-10-16 26716 29227 110
1012 Jon 2017-10-16 29227 -2 150
我需要唯一的名稱和他們什麼時候開始工作(從最低值)上的任務。
應該是這樣的:
PersNr | Name | Day | From | To | TaskNr
------------------------------------------------
1000 Peter 2017-10-16 25050 -2 110
1001 Emily 2017-10-16 25038 -2 110
1010 Greg 2017-10-16 28306 31371 120
1012 Jon 2017-10-16 24805 26716 170
我創建的表是這樣的:
SELECT AB.PersNr
,P.Name AS name
,CONVERT(char(10),DATEADD(DAY, AB.Tag, '30.12.1899'),126) AS Day
,AB.From
,AB.To
,AB.TaskNr
FROM AStpFromTo AB
LEFT JOIN Tasks A ON (A.TaskNr = AB.TaskNr)
INNER JOIN Person P ON (P.PersNr = AB.PersNr)
WHERE P.Department = 170 AND AB.Day = DATEDIFF(DAY, '30.12.1899', GETDATE())
結果喬恩是不正確的,按照什麼OP希望。 –
@PrabhatG - 謝謝,現在修復 – 2017-10-16 10:41:46