Нужно последнее событие определенного типа, где на эту дату может существовать несколько событий - PullRequest
0 голосов
/ 02 октября 2009

Прежде всего, я работаю в 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  

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

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

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 Ответ

1 голос
/ 02 октября 2009
SELECT StudentID, [Date], MAX(Event) AS [Event]
FROM   MyTable
GROUP BY StudentID, [Date]

Должен это сделать ..... (Трехлетний "больше чем" Ежегодный)

...