Я пытаюсь написать запрос, который получает значение одного поля, связанного с максимальным значением другого поля (или полей).Допустим, у меня есть следующая таблица данных:
OrderID CustomerID OrderDate LocationID
1 4 1/1/2001 1001
2 4 1/2/2001 1003
3 4 1/3/2001 1001
4 5 1/4/2001 1001
5 5 1/5/2001 1001
6 5 1/6/2001 1003
7 5 1/7/2001 1002
8 5 1/8/2001 1003
9 5 1/8/2001 1002
Группируя по CustomerID
, я хочу получить максимум OrderDate
, а затем LocationID
, связанный с любым максимальным OrderDate
.Если существует несколько записей, которые имеют максимальную дату заказа, то из числа этих записей с максимальной датой берется LocationID
, связанный с максимальным OrderID
.
Окончательный набор данных должен выглядеть следующим образом:
CustomerID OrderDate LocationID
4 1/3/2001 1001
5 1/8/2001 1002
Я пытался написать запрос с множеством вложенных подзапросов и уродливых объединений, но на самом деле я ничего не получил.Какой SQL мне нужно написать, чтобы помочь мне получить этот результат.