2010-07-15 5 views
1

je le tableau suivant:TSQL - Max ou Top date sur une table non normalisée

Tableau: UserName

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 

je dois extraire la dernière mise à jour pour tous ces utilisateurs, essentiellement est ici ce que je m chercher:

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

J'ai essayé de faire un SELECT TOP ou Max, mais seulement obtenir le dernier résultat, soit 1 résultat pour toute la table, ce qui est pas ce que je veux.

Répondre

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

Ceci justifie une autre question ... mais si au lieu du champ "user" j'ai "FirstName" et "LastName"? Si je fais un groupe sur ceux-là, alors j'obtiendrais des lignes dupliquées avec des prénoms et des noms différents, comment puis-je en extraire celui avec la dernière date? – firedrawndagger

+0

'SELECT ID utilisateur, Prénom, Nom, Max (UserUpdate) AS MaxDate FROM myTable GROUP BY ID utilisateur, Prénom, Nom". Si cela ne fonctionne pas, veuillez poster des exemples de données d'entrée et de données de sortie pour que les gens comprennent pourquoi cela ne fonctionnera pas. – shahkalpesh

+0

Assez Assez, je l'ai posté ici: http://stackoverflow.com/questions/3259386/tsql-select-max – firedrawndagger

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

L'utilisateur est pas dans le groupe par, donc cela ne fonctionnera pas. Vous auriez besoin de max (Utilisateur) ou de groupe par userid, user –

Questions connexes