mysql - 显示员工的销售额
问题描述
我有三张桌子。PersonalDetail,员工和订单。个人详细信息包含有关姓名和资料的数据。员工表有专业数据。订单有销售历史。
表 PersonalDetail
personalID FirstName LastName
1 test test
2 test test
3 test test
4 test test
5 test test
表员工:
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
推荐阅读
- javascript - 如何获取firestore集合下的文档数量?
- azure - 逻辑应用直到动作,如何动态设置计数?
- laravel - 让所有雄辩的模型实例满足不同关系中的多个要求的最佳方法是什么
- java - 使用 SpringRunner.class 执行 @DataJpaTest(s) 时忽略 MVC 组件
- c++ - 有没有办法将谷歌驱动器中的图像加载到 colab 上运行的 cuda 代码中?
- flutter - 如何为小部件赋予文本样式并在颤动中对其所有后代应用相同的样式?
- python - QStandardItem 不在第一行添加子项
- java - 没有服务器关闭套接字的情况下从套接字读取数据的选项?
- css - 在 angular.json 和 index.html 导入之间设置 Angular 应用程序的引导版本顺序
- flutter - 如何使用 Flutter 在列表中显示多个 GoogleMap