编写一条 SQL 查询来显示在客户要求的日期内成功发货的员工列表。我。标题为“EmployeeNme”的员工“FirstName”和“LastName”列值的串联值 ii。每个员工在“订单总数”标题下接受的订单总数注意:最终输出应根据“订单总数”值降序显示。
但是,我的查询的输出与预期结果不符。
SELECT
CONCAT(e.FirstName, e.LastName) AS EmployeeName,
COUNT(o.OrderID) AS [Total Orders]
FROM
Employees e
LEFT JOIN
Orders o ON e.EmployeeID = o.EmployeeID
WHERE
o.ShippedDate IS NOT NULL
GROUP BY
e.FirstName, e.LastName
ORDER BY
[Total Orders] DESC;
我的查询有什么问题?
有哪些改进?
输出:
员工姓名 | 总订单 |
---|---|
玛格丽特·孔雀 | 68 |
更新更新 | 46 |
劳拉卡拉汉 | 44 |
安德鲁·富勒 | 29 |
罗伯特·金 | 27 |
迈克尔·苏亚姆 | 27 |
但是我需要这样的输出:
员工姓名 | 总订单 |
---|---|
玛格丽特·孔雀 | 3 |
迈克尔·苏亚姆 | 3 |
罗伯特·金 | 2 |
安德鲁·富勒 | 2 |
劳拉卡拉汉 | 1 |
更新更新 | 1 |
史蒂文·布坎南 | 1 |
约翰卡特 | 0 |
SELECT
CONCAT(e.FirstName, e.LastName) AS EmployeeName,
COUNT(Distinct o.OrderID) AS [Total Orders]
FROM
Employees e
INNER JOIN
Orders o ON e.EmployeeID = o.EmployeeID
WHERE
o.ShippedDate IS NOT NULL
GROUP BY
e.FirstName, e.LastName
ORDER BY
[Total Orders] DESC;