员工订单计数的 SQL 查询结果不匹配

问题描述 投票:0回答:1

编写一条 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
sql sql-server group-by left-join aggregate-functions
1个回答
-1
投票
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;
© www.soinside.com 2019 - 2024. All rights reserved.