1

从 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 并向所有员工显示,而不是为每个员工显示。我能做些什么来解决这个问题?

谢谢

4

1 回答 1

0

我对您的查询做了一些更改。希望能帮助到你。

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
于 2014-09-18T21:55:06.420 回答