从SELECT内部的SELECT返回多于1行

问题描述 投票:1回答:1

我正在尝试创建一个查询,以查找每个客户欠公司的总金额是多少。导致问题的是子查询中的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;

我要链接的表是paymentsorderdetails

[当我摆脱GROUP BY时,由于从SUM的每一行中减去了总SUM(quantityOrdered * priceEach)的金额,所以我得到的结果都是负数。

如何更改此设置,以便我可以从付款中返回多行以从订单明细表的SUM(quantityOrdered * priceEach)中减去。

作为StackOverflow链接到数据库不允许我发布图像

“] >>

感谢您的帮助,如果格式不好,抱歉,这是我的第一篇文章。

我正在尝试创建一个查询,以查找每个客户欠公司的总金额是多少。是由子查询中的GROUP BY customerNumber造成的。 SELECT ...

mysql join aggregate-functions workbench
1个回答
0
投票

您将需要几个子查询来满足您的要求。让我们分解一下。

© www.soinside.com 2019 - 2024. All rights reserved.