Northwind - последний идентификатор клиента по сотруднику

Из примера базы данных Northwind я пытаюсь получить OrderID самого последнего заказа для каждого сотрудника, который я использую:

SELECT EmployeeID, MAX(OrderDate) AS OrderDate, COUNT(OrderDate) AS Count, 
    (SELECT OrderID 
     FROM Orders 
     WHERE OrderDate = (SELECT MAX(OrderDate) 
                        FROM Orders)
    ) AS OrderID
FROM Orders
GROUP BY EmployeeID

Который возвращает:

EmployeeID  OrderDate       Count   OrderID
1           1997-01-06      29      10443
2           1997-01-22      20      10443
3           1997-02-11      31      10443
4           1997-02-10      40      10443
5           1996-12-27      11      10443
6           1997-02-07      18      10443
7           1997-01-28      14      10443
8           1997-02-12      27      10443
9           1997-01-10      6       10443

Но проблема в том, что он просто получает самый последний OrderID и показывает его для всех сотрудников, а не для каждого сотрудника. Что я могу сделать, чтобы это исправить?

Спасибо

1 ответ

Я сделал некоторые изменения в вашем запросе. Надеюсь, поможет.

SELECT EmployeeID, MAX(OrderDate) AS OrderDate, COUNT(OrderDate) AS Count, 
    (SELECT MAX(OrderID) 
     FROM Orders 
     WHERE EmployeeID = O.EmployeeID
     ) AS OrderID
FROM Orders O
GROUP BY EmployeeID
Другие вопросы по тегам