どのようにして、最低の時間値で複数の行の最初のレコードを抽出できますか?このようなMSSQLの重複する行ごとに1つのレコードを取得する方法
何か:
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 - ありがとう、今すぐ修正 –