gpt4 book ai didi

MySql查询以查找具有条件的同一列之间的差异

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:34 25 4
gpt4 key购买 nike

我有这张表register:

id quantity type
1 | 10 | in
2 | 5 | in
1 | 3 | out
1 | 2 | out
2 | 5 | out
3 | 2 | in
3 | 1 | out

我想要每只股票的余额 *sum of type='in' - sum of type= 'out'*

期望的输出是:

1 | 5
2 | 0
3 | 1

我还有另一个表item:

id | name
1 | A
2 | B
3 | C

是否可以使用项目 name 而不是 id 查看输出?所以最终的结果是这样的:

A | 5
B | 0
C | 1

最佳答案

基本思想是条件聚合——case inside sum()。您还需要一个 join 来获取 name:

select i.name,
sum(case when r.type = 'in' then quantity
when r.type = 'out' then - quantity
else 0
end) as balance
from register r join
item i
on r.id = i.id
group by i.name;

关于MySql查询以查找具有条件的同一列之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45261457/

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