SQL - 按销售员计算订单总数

时间:2016-06-26 19:53:16

标签: mysql database aggregate-functions

我是一名从事家庭作业的计算机科学专业的学生。我试图总计每个销售人员的订单数量。我希望我的最终输出显示销售人员的姓名以及他/她获得的订单数量。

信息存储在两个单独的表中。

示例数据。

表1 - order_t

OrderID CustomerID  OrderDate   FulfillmentDate SalespersonID   ShipAdrsID
1   4   2014-09-08  2014-11-25  3   NULL
2   3   2014-10-04  0000-00-00  3   NULL
3   1   2014-07-19  0000-00-00  2   NULL
4   6   2014-11-01  0000-00-00  5   NULL
5   4   2014-07-28  0000-00-00  3   NULL
6   4   2014-08-27  0000-00-00  3   NULL
7   1   2014-09-16  0000-00-00  2   NULL
8   4   2014-09-16  0000-00-00  3   NULL
9   6   2014-09-16  0000-00-00  5   NULL

表2 - salesperson_t

SalespersonID   SalespersonName 
1   "Doug Henny"    
2   "Robert Lewis"  
3   "William Strong"    
4   "Julie Dawson"  

这是我最新的查询。问题是它只返回ID为2的单个销售人员的数据。我不知道为什么会发生这种情况。

SELECT SalespersonName, COUNT(DISTINCT order_t.SalespersonID) AS TotalOrderQuantity
FROM salesperson_t, order_t
WHERE salesperson_t.SalespersonID = order_t.SalespersonID;

2 个答案:

答案 0 :(得分:2)

您需要使用group by子句

SELECT SalespersonName, COUNT(order_t.SalespersonID) AS TotalOrderQuantity
FROM salesperson_t join order_t on (ordert_t.SalespersonID = salesperson_t.SalespersonID )
group by order_t.SalespersonID

答案 1 :(得分:1)

我建议使用内连接和计数(*)和分组

SELECT SalespersonName, COUNT(*)  AS NumberOfOrder
FROM salesperson_t 
INNER JOIN order_t on (ordert_t.SalespersonID = salesperson_t.SalespersonID )
GROUP BY order_t.SalespersonID
ORDER BY order_t.SalespersonID