2009-10-02 8 views
0

Tout d'abord, je travaille dans SQL Server 2000 (bien que des prières aient été faites aux dieux fédéraux de stimulation monétaire pour une mise à niveau vers 2008.)Besoin du dernier événement d'un certain type où plusieurs événements peuvent exister pour cette date

J'ai une liste d'étudiants et d'événements éducatifs. Je peux obtenir avec succès l'événement le plus récent, sauf qu'il peut être une combinaison d'événements:

StudentID Event  Date 
1   Triennial 7/1/2009 
1   Annual  7/1/2009 
2   Annual  3/3/2009 
3   Annual  6/23/2009 
3   Triennial 6/23/2009 
4   Annual  2/1/2009 
4   Triennial 2/1/2009 
5   Annual  10/1/2009 

Une date de l'événement peut avoir deux événements, « annuel » et « Triennale », ou il peut juste avoir un événement, "Annuel." Si c'est un événement combiné, je veux seulement sélectionner "Triennale". Si c'est juste un événement annuel, je vais juste sélectionner "Annuel". Fondamentalement, chaque événement a "Annuel", mais certains ont "Triennale" ainsi, et si c'est une Triennale, je dois sélectionner cet événement au lieu de la description "Annuel". Donc, pour les données ci-dessus, je veux des résultats comme celui-ci:

StudentID Event  Date 
1   Triennial 7/1/2009 
2   Annual  3/3/2009 
3   Triennial 6/23/2009 
4   Triennial 2/1/2009 
5   Annual  10/1/2009 

Répondre

1
SELECT StudentID, [Date], MAX(Event) AS [Event] 
FROM MyTable 
GROUP BY StudentID, [Date] 

devrait le faire ..... (Triennale est « supérieur à » annuel)

+0

Merci, qui a très bien fonctionné ! – Daniel

Questions connexes