我在这里遇到一些问题:我创建了5个表:客户,发票,行,产品和供应商。
任务问我:
每位客户向我们支付的总金额是多少?
以下评论:
要查找每位客户向我们付款的总金额,您需要加入 客户表与发票和行。按客户代码分组,总和 线的价格。余额只会显示客户是否欠我们钱。 此外,当您执行SUM时,还应该有一个group by语句。
我已经制作了一个代码,但因为感到困惑而陷入困境:
SELECT Invoice.CUS_CODE
FROM Invoice
INNER JOIN Customer ON Invoice.CUS_CODE = Customer.CUS_CODE
WHERE Invoice.INV_NUMBER IN (
SELECT SUM(Line.LINE_PRICE)
FROM Line
INNER JOIN Invoice ON Invoice.INV_NUMBER = Line.INV_NUMBER
GROUP BY LINE_PRICE)
GROUP BY Invoice.CUS_CODE;
因此,我需要通过来自客户的CUS_CODE(客户代码)从发票表中对INV_NUMBER进行分组,并对分组的INV_NUMBER的LINE_PRICE求和。在CUS_CODE的最后一组。
提前谢谢你。
UPD:表
客户表
线台
发票表
答案 0 :(得分:2)
您似乎可以使用LEFT JOIN
GROUP BY
SELECT CUS_CODE, CUS_LNAME, CUS_FNAME, SUM(Line.LINE_PRICE)
FROM Customer
LEFT JOIN Invoice ON Invoice.CUS_CODE = Customer.CUS_CODE
LEFT JOIN Line ON Invoice.INV_NUMBER = Line.INV_NUMBER
GROUP BY CUS_CODE, CUS_LNAME, CUS_FNAME