我正在使用MySQL,我有3个表,分别是客户,借方和贷方。每个客户都有一个或多个借方以及一个或多个贷方。现在,我要计算每个客户的总借方和总贷方,只显示那些总借方和总贷方不平衡的客户。谁能帮我?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
一种想法是让两个聚合查询左连接起来,这两个查询计算每个客户的总贷方和借方,并过滤外部查询。
就像是:
select cus.* from customers cus left join (select customer_id, sum(amount) total_amount from credits group by customer_id) cre on cre.customer_id = cus.customer_id left join (select customer_id, sum(amount) total_amount from debits group by customer_id) deb on deb.customer_id = cus.customer_id where coalesce(cre.total_amount, 0) = coalesce(deb.customer_id, 0)
问题来源于stack overflow