我有以下表格:

客户(custID)

订单(orderID,custID)

采购订单(产品编号,订单编号,金额)

我想选择每个custID和订购的产品总数。我有以下代码:

SELECT c.custId (COUNT(po.amount)) totalOrders
FROM Customer c
INNER JOIN "Order" o
ON c.custId = o.custId
INNER JOIN PO po
ON o.orderId=po.orderId;


我收到以下错误:


  找不到列“ c”或用户定义的函数,或者
  聚合“ c.custId”,或者名称不明确。

最佳答案

您需要一个group by。您不需要客户表。您需要SUM(),而不是COUNT()`。而且您的语法刚刚关闭:

SELECT o.custId, SUM(po.amount) as totalOrders
FROM "Order" o INNER JOIN
      PO po
      ON o.orderId=po.orderId
GROUP BY o.custId;

关于mysql - 每个客户订购的产品总数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58906903/

10-11 15:56