【发布时间】:2020-06-26 18:11:57
【问题描述】:
我正在尝试创建一个查询来查找每位客户欠公司的总金额。造成问题的是子查询中的GROUP BY customerNumber。
SELECT customerName,
customers.customerNumber,
SUM(quantityOrdered * priceEach) - ( SELECT SUM(amount) AS MoneyPayed FROM payments GROUP BY customerNumber ) AS AmountOwed
FROM payments
INNER JOIN customers ON payments.customerNumber = customers.customerNumber
INNER JOIN orders ON customers.customerNumber = orders.customerNumber
INNER JOIN orderdetails ON orders.orderNumber = orderdetails.orderNumber
GROUP BY customerNumber;
我要链接的表是 payments 和 orderdetails。
当我摆脱GROUP BY 时,我得到的结果为负数,因为从SUM(quantityOrdered * priceEach) 的每一行中减去SUM 的总数。
如何更改此设置,以便我可以从付款返回多行以从订单详细信息表中减去 SUM(quantityOrdered * priceEach)。
由于 StackOverflow 不允许我发布图片,因此链接到 DB
感谢帮助,如果格式不好,请见谅,这是我的第一篇文章。
【问题讨论】:
标签: mysql join aggregate-functions workbench