请大神帮忙看一个SQL组合查询语句
数据库原始数据如下图:通过查询对编码相同的数量进行求和,然后与原表中数量进行对比,对数量相加为0的,将状态更新为退
我反正没看懂你的问题,你这举的例子感觉很大问题,你的编码和通用名根本对不上,一样的通用名却是不一样的编码 没有描述清楚哦大兄弟 CatSky 发表于 2022-8-3 19:23
我反正没看懂你的问题,你这举的例子感觉很大问题,你的编码和通用名根本对不上,一样的通用名却是不一样的 ...
是有,有编码不一样的情况,要编码相同的才相加 看这里理解,好像跟你想要的效果也不一样呢 没明白你要干啥~~ 碧池不要碧莲 发表于 2022-8-3 19:57
没有描述清楚哦大兄弟
可能表述不太清楚{:1_907:}
实际就是需要先把编码相同的为数量负数的相加,然后用求的负数和再去表里比较,取相加等于0的那一条,然后将状态改为退 sql不好写 提供一个思路, 过滤负数的数量再 编码和数量group by 求和, 和取绝对值 然后 生成子表关联
大概这样select
t.*, tt.tui
from t
left join
(
select a,b, abs(sum(c)) c, '退' tuifrom t where c < 0 group by a,b ) tt on t.b = tt.b and t.c=tt.c cchume 发表于 2022-8-3 23:19
提供一个思路, 过滤负数的数量再 编码和数量group by 求和, 和取绝对值 然后 生成子表关联
大概这样
数量相同的话用开窗函数
页:
[1]
2