Mysql 显示员工的销售计数
我有三张桌子。个人详细信息、员工和订单。“个人详细信息”包含有关姓名和内容的数据。Employee表包含专业数据。订单有销售历史记录 表格个人详细信息Mysql 显示员工的销售计数,mysql,sql,sql-server,database,group-by,Mysql,Sql,Sql Server,Database,Group By,我有三张桌子。个人详细信息、员工和订单。“个人详细信息”包含有关姓名和内容的数据。Employee表包含专业数据。订单有销售历史记录 表格个人详细信息 personalID FirstName LastName 1 test test 2 test test 3 test test 4 test test 5
personalID FirstName LastName
1 test test
2 test test
3 test test
4 test test
5 test test
表1员工:
EmployeeID personalID hireDate Status
001 1 test test
002 2 test test
003 3 test test
004 4 test test
005 5 test test
and more data
表顺序:
OrderID customerID EmployeeID ShipmentStatus
1 10 002 P
2 182 001 P
3 22 005 P
4 10 002 P
5 89 003 P
6 76 004 P
7 99 001 P
8 111 001 P
9 123 002 P
10 647 001 P
我希望得到的最终结果如下:
employeeID FirstName,LastName Count(sales to customers)
001 test test 4
002 test test 3
003 test test 1
004 test test 1
005 test test 1
到目前为止,我有:
SELECT e.employeeID, Concat (p.firstName,' ', p.lastName) AS Name, o.customerID
FROM Employee ((
INNER JOIN PersonalDetail ON e.personalID = p.personalID)
INNER JOIN Orders ON e.employeeID = o.employeeID)
ORDER BY employeeID;
这给了我以下结果:
employeeID Name CustomerID
001 test test 182
001 test test 99
001 test test 111
001 test test 647
002 test test 10
002 test test 10
002 test test 123
003 test test 89
004 test test 76
005 test test 22
我知道如何根据每个客户订单显示员工姓名,但却难以显示特定员工的订单数量。您可以加入并聚合:
select
e.EmployeeID,
concat(e.FirstName, ',', e.LastName) employeeName,
count(*) no_sales
from employees e
inner join sales s on s.EmployeeID = e.EmployeeID
group by e.EmployeeID, e.FirstName, e.LastName
order by no_sales desc
要避免“订单依据”错误,请使用计数本身:
select
E.EmployeeID,
concat(E.FirstName, ',', E.LastName) employeeName,
count(S.*) no_sales
from employees E
inner join sales S on S.EmployeeID = E.EmployeeID
group by E.EmployeeID, E.FirstName, E.LastName
order by count(S.*) desc
提示:加入。分组依据。请仅选择一个RDM