【发布时间】:2019-01-29 05:26:56
【问题描述】:
我正在创建一个带有销售/付款选项的客户门户,其中所有销售都在一个表中,所有付款都在另一个表中。对于客户状态表,我需要得到每个客户的所有付款和每个客户的所有销售加上它们之间的差额的总和。
示例表:
表clients
====================================
id client_name
====================================
1 School "Mike Jordan"
2 Car wash "Blah blah"
表purchasing
===================================
id client_id amount
===================================
1 1 1000
2 1 500
3 2 800
4 2 800
表payments
===================================
id client_id amount
1 1 300
2 2 200
3 2 200
我尝试过内部连接和分组,但这并没有正确地得到总和,总是更大的,就像它在计算我不想要的东西(没有总数,只是试图得到总和:
select clients.`client_name `,
sum(purchasing.amount) as SOLD,
sum(payments.amount) as PAID
from clients
inner join payments on payments.client_id=clients.id
inner join purchasing on purchasing.client_id=clients.id
group by clients.id
我得到不同结果的地方(都更大)。
client_name SOLD PAID
================================
School "Mike Jordan" 1500 600
Car wash "Blah blah" 3200 800
如果我尝试按 payment.id 和/或 purchase.id 添加分组,则得到两个以上的结果...我知道存在分组问题,但我真的不知道它在哪里。
我想添加新列,这只是 SOLD 和 PAID 之间的区别,但是服务器生成错误消息,表明 SOLD 和 PAID 不在字段列表中。
知道如何通过单个查询来完成此任务吗?
【问题讨论】: