Кажется, если это будет довольно просто, но я спотыкаюсь найти решение, которое работает для меня.
У меня есть таблица member_contracts, которая имеет следующую (упрощенную) структуру.
MemberID | ContractID | StartDate | End Date |
------------------------------------------------
1 1 2/1/2002 2/1/2003
2 2 3/1/2002 3/1/2003
3 3 4/1/2002 4/1/2003
1 4 2/1/2002 2/1/2004
2 5 3/1/2003 2/1/2004
3 6 4/1/2003 2/1/2004
Я пытаюсь создать запрос, который выберет самые последние контракты из этой таблицы. Это следующий результат для этого небольшого примера:
MemberID | ContractID | StartDate | End Date |
------------------------------------------------
1 4 2/1/2002 2/1/2004
2 5 3/1/2003 2/1/2004
3 6 4/1/2003 2/1/2004
Выполнение этого для каждого пользователя чрезвычайно просто, так как я могу просто использовать подзапрос, чтобы выбрать max contractID для указанного пользователя. Я использую SQL-сервер, поэтому, если есть особый способ сделать это с этим вкусом, я открыт для его использования. Лично мне хотелось бы что-то, что было агностиком.
Но как я могу написать запрос, который бы достиг цели для всех пользователей?
EDIT: Я также должен добавить, что я ищу максимальное значение contractID для каждого пользователя, а не самые последние даты.