gpt4 book ai didi

mysql - 2 个表中 2 列的值总和并按列排序

转载 作者:行者123 更新时间:2023-12-01 00:18:28 24 4
gpt4 key购买 nike

我有 2 个表:

表“学分”:

id | amount | type
1 8 1
2 7 2
3 2 1
4 1 1
5 5 3
6 4 2

表“借记”:

id | amount
1 3
1 2
3 2
4 1
5 3
5 1

我需要获取所有“id”余额(贷方-借方)的总和,并按“类型”对其进行分组。到目前为止我有这个:

SELECT id, SUM(amount) as balance,
FROM
(
SELECT id, amount FROM credits
UNION ALL
SELECT id, -amount FROM debits
)
unified_table
GROUP BY id

但它只是给了我“id 的”余额:

id | balance
1 3
2 7
3 0
4 0
5 1
6 4

理想情况下,我需要这样的东西:

type | balance
1 3
2 11
3 1

我试过在并集的第一个“select”中添加“type”列,然后按“type”分组。但我认为不起作用,因为表“借记”没有列“类型”。我怎样才能做到这一点?谢谢你的帮助

最佳答案

我认为这样做可以:

SELECT c.type, sum(c.amount - IFNULL(d.amount,0))
FROM credits c LEFT OUTER JOIN (SELECT id, sum(amount) FROM debits GROUP BY id) d
ON c.id=d.id
GROUP BY c.type

想法是先对debits 表进行分组,然后将其与credits 表合并,这将生成一个可以按 分组的表输入

关于mysql - 2 个表中 2 列的值总和并按列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43201475/

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