2010-07-15 48 views
1

我有如下表:TSQL - 最大或在非標準化表頂部日期

表:用戶名

Userid User  UserUpdate 
1  Dan   1/1/2005 
1  Dan   1/1/2007 
1  Dan   1/1/2009 
2  Pam   1/1/2005 
2  Pam   1/1/2006 
2  Pam   1/1/2008 
3  Sam   1/1/2008 
3  Sam   1/1/2009 

我需要提取最新的更新所有這些用戶,基本上這裏就是我尋找:

Userid User  UserUpdate 
1  Dan   1/1/2009 
2  Pam   1/1/2008 
3  Sam   1/1/2009 

我試着做一個SELECT TOP或最大,但只得到最新的結果,即1的結果對於整個表,這不是我想要的。

回答

4
SELECT Userid, User, Max(UserUpdate) AS MaxDate 
FROM myTable 
GROUP BY Userid, User 
+0

這是我的許可證另一個問題......但如果不是字段「用戶」,我有「名字」和「姓氏」?如果我在這些人身上做了一個小組,那麼我會用不同的FirstName和LastName得到重複的行,我怎麼才能提取最新的日期? – firedrawndagger 2010-07-15 17:28:22

+0

'SELECT用戶名,名,姓,最大(用戶更新)AS MaxDate 從myTable GROUP BY用戶名,名,姓。如果這不起作用,請發佈樣本輸入數據和輸出數據,以便了解爲什麼這樣做不起作用。 – shahkalpesh 2010-07-15 17:45:43

+0

足夠公平,我發佈在這裏:http://stackoverflow.com/questions/3259386/tsql-select-max – firedrawndagger 2010-07-15 19:52:52

0
Select Userid, User, MAX(UserUpdate) from myTable GROUP BY Userid, User 
+2

用戶不是在group by,所以這是不行的。你需要最大(用戶)或用戶組,用戶 – 2010-07-15 17:19:22