2010-07-15 61 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