2009-10-02 1 views
0

Прежде всего, я работаю в SQL Server 2000 (хотя молитвы были сделаны для богов федеральных стимулов-денег для обновления до 2008 года).Нужно последнее событие определенного типа, в котором могут существовать несколько событий для этой даты

У меня есть список студентов и образовательных мероприятий. Я могу успешно получить самое последнее событие, за исключением того, что это может быть комбинация событий:

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 

Одна дата события может иметь два события, «Годовой» и «триеннале» или он может просто одно событие, «Годовой». Если это комбинационное событие, я хочу только выбрать «Triennial». Если это просто ежегодное мероприятие, я просто выберу «Ежегодный».

В принципе, каждое событие имеет «Ежегодный», но некоторые из них также имеют «Триеннале», и если это трехлетний период, мне нужно выбрать это событие вместо описания «Ежегодный». Таким образом, для приведенных выше данных, я хочу результатов, как это:

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 

ответ

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

Если это сделать ..... (триеннале это «больше, чем» Годовой)

+0

Спасибо, что работал большой ! – Daniel