gpt4 book ai didi

Mysql连接三个表,第三个是WHERE

转载 作者:行者123 更新时间:2023-11-29 02:28:51 24 4
gpt4 key购买 nike

我需要加入三个表来显示以下内容。
我可以加入前两个并使用此查询显示所有唯一的 nominal_acc_no

SELECT nominal_acc_no,coa_name FROM
(
SELECT nominal_acc_no ,coa_name FROM acc_chart_of_accounts
UNION
SELECT nominal_acc_no,coa_name FROM acc_chart_of_sub_accounts
) A;

但我正在为如何加入第三个并输出如下所示的结果而苦苦挣扎。我需要对 nominal_acc_no 进行分组,并将借方和贷方与 acc_posting_details 表中 company_id 的 WHERE 相加。任何帮助表示赞赏。

 Acc_chart_of_accounts           
Coa_id nominal_acc_no
1 10
2 20

acc_chart_of_sub_accounts
coa_sub_id nominal_acc_no company_id
1 10 1
2 20 1
3 110 1



Acc_posting_details
Id nominal_acc_no debit credit company_id
1 10 25.00 1
2 10 15.00 1
3 20 30.00 1
4 110 10.00 1
5 110 8.00 1

Result
Nominal_acc_no debit credit company_id
10 40.00 - 1
20 - 30.00 1
110 18.00 - 1

最佳答案

SELECT
acsa.nominal_acc_no,
IFNULL(sum(apd.debit),0) AS debit,
IFNULL(sum(apd.credit),0) AS credit,
acsa.company_id
FROM acc_chart_of_sub_accounts AS acsa
LEFT JOIN acc_posting_details AS apd
ON acsa.nominal_acc_no = apd.Nominal_acc_no
GROUP BY acsa.nominal_acc_no, acsa.company_id

输出

Nominal_acc_no        debit     credit    company_id
-----------------------------------------------------
10 40.00 0 1
20 0 30.00 1
110 18.00 0 1

编辑:我在查询中修复了一个别名问题。

SQL Fiddle Demo Here

关于Mysql连接三个表,第三个是WHERE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16083392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com