J'ai les données suivantes:groupe de requêtes SQL par l'aide
cust subject date
Cust1 Subject1 2010-12-31 21:59:59.000
Cust1 Subject1 2010-12-31 21:59:59.000
Cust4 Subject3 2011-02-27 21:59:59.000
Cust5 Subject1 2010-10-31 21:59:59.000
Cust5 Subject2 2010-10-31 21:59:59.000
Cust6 Subject2 2010-10-31 21:59:59.000
Cust6 Subject2 2010-12-31 21:59:59.000
je dois obtenir les résultats suivants:
- regrouper par Cust et sous réserve
- S'il y a 2 enregistrements avec le même cust et le sujet puis je dois retourner celui avec la date la plus élevée
- Suite à ce qui précède, si les dates sont les mêmes, retournez seulement 1 d'entre eux.
Le résultat de la requête doit être:
cust subject date
Cust1 Subject1 2010-12-31 21:59:59.000
Cust4 Subject3 2011-02-27 21:59:59.000
Cust5 Subject1 2010-10-31 21:59:59.000
Cust5 Subject2 2010-10-31 21:59:59.000
Cust6 Subject2 2010-12-31 21:59:59.000
me aider Quelqu'un peut-il cela?
j'ai réussi à faire 2 des exigences, mais pas tous 3.
Bien sûr, MAX ([date]) fonctionne ... ROW_NUMBER() est trop puissant. :) Pourtant, je l'aime! –
Je pense que vous devez ajouter 'AS RN' sur la colonne numéro de ligne pour la clause' WHERE' pour fonctionner correctement ... –
Merci beaucoup. La raison pour laquelle j'ai accepté ceci comme réponse est que j'ai oublié de mentionner que j'ai d'autres colonnes que je dois retourner ainsi que je ne les inclurai pas dans le groupe par et ne peux pas utiliser une fonction agrégée sur eux (comme le titre par exemple) et cela ne fonctionnerait pas avec le groupe normal par approche (du moins pas aussi facilement que celui-ci). Je vais jeter un coup d'oeil aux fonctions de partitionnement, elles semblent être un grand gain de temps. – HaniBey