【发布时间】:2019-11-05 05:46:29
【问题描述】:
我正在编写包含一些计算的 3 个表的查询。以客户名称命名的表可能在表 debit_items 中有一个或多个借方,每个借方在表 credit_items 中可以有一个或多个贷方。在这里,我应该找到每个客户的总借方和总贷方,但问题是如果借方有多个贷方,则该借方将被计算为重复。
customers1debit_items2credit_items3
我写的查询是这样的:
SELECT customers.*,
sum(CASE
WHEN debit_items.customer_id = customers.id THEN
debit_items.debit_amount
ELSE
0
END) as total_debit,
sum(CASE
WHEN credit_items.debit_id = debit_items.id THEN
credit_items.credit_amount
ELSE
0
END) as total_credit
FROM customers
LEFT JOIN debit_items
ON customers.id = debit_items.customer_id
AND debit_items.deleted = '0'
LEFT JOIN credit_items
ON debit_items.id = credit_items.debit_id
AND credit_items.deleted = '0'
GROUP BY customers.id
如果有人帮助我,我将不胜感激。
【问题讨论】:
-
'每个借记可以有一个或多个贷记'-真的,你永远不会有零贷记吗?