Я пытаюсь написать запрос, который получает значение одного поля, связанного с максимальным значением другого поля (или полей). Допустим, у меня есть следующая таблица данных:
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 мне нужно написать, чтобы помочь мне получить этот результат.