Oracle - 计数功能(每位员工销售的订单)

时间:2018-03-28 19:04:24

标签: sql oracle join count

在确定如何显示显示2列的结果时遇到问题;一个是员工ID,第二个是该员工销售的订单。

有问题的2个表格为EmployeesOrders。每个中的主键称为EmployeeIDOrderIDOrders中包含外键EmployeeID。我假设我需要使用COUNT函数来计算出总共有多少订单,但JOIN并找出如何将员工ID与那个失去我的订单联系起来。

到目前为止我所拥有的一切:

SELECT e.employeeid, COUNT(Orders) AS 'Count'
FROM Employees e
JOIN Orders o ON e.Employeeid = o.Employeeid
GROUP BY e.employeeid;

2 个答案:

答案 0 :(得分:0)

您的查询很好,唯一不能计算表格,因此将COUNT(Orders)更改为COUNT(o.*)COUNT(o.OrderID)

SELECT e.employeeid, COUNT(o.OrderID) AS OrderCount
FROM Employees e
JOIN Orders o ON e.Employeeid = o.Employeeid
GROUP BY e.employeeid;

建议不要使用COUNT之类的关键字作为标识符,因此我将其更改为OrcerCount,但如果您真的需要,则可以使用'Count'

此查询仅向您提供订单(至少一个订单)的员工。如果您想包含没有订单的员工,请将JOIN更改为LEFT JOIN

答案 1 :(得分:0)

如果订单表中有外键,除非您需要员工特定的内容,否则为什么要查看员工。我会做这样的事情。

select employeeid, count(*) from Orders group by employeeid;