請考慮下面的表...選擇MAX日期加上ID值
DECLARE @tmp TABLE
(
ID int,
userID int,
testID int,
someDate datetime
)
...包含以下值:
INSERT INTO @tmp (ID, userID, testID, someDate) VALUES (1, 1, 50, '2010-10-01')
INSERT INTO @tmp (ID, userID, testID, someDate) VALUES (2, 1, 50, '2010-11-01')
INSERT INTO @tmp (ID, userID, testID, someDate) VALUES (3, 1, 50, '2010-12-01')
INSERT INTO @tmp (ID, userID, testID, someDate) VALUES (4, 2, 20, '2010-10-01')
INSERT INTO @tmp (ID, userID, testID, someDate) VALUES (5, 2, 30, '2010-11-01')
INSERT INTO @tmp (ID, userID, testID, someDate) VALUES (6, 2, 20, '2012-11-01')
我需要檢索的最大日期爲每個用戶ID/testID組合的值,以及附帶的ID值。結果應該是:
ID userID testID someDate
-------------------------------
3 1 50 2010-12-01
5 2 30 2010-11-01
6 2 20 2012-11-01
當我嘗試以下查詢時,結果集變得不正確,並顯示所有行。我不能從GROUP BY子句中省略ID,因爲它會導致錯誤。任何人都可以幫忙嗎?爲了獲得這些價值,似乎很囉嗦地加入表格。
SELECT ID, userID, testID, MAX(someDate)
FROM @tmp
GROUP BY testId,userID,ID;
http://www.sqlfiddle.com/#!6/d41d8/5219
看到類似的問題的回答上DBA.Stackexchange http://dba.stackexchange.com/questions/1002/how-to-get-最大行 –