我的表是这样的:
物品 操作 数量
----------------
A 收取 3
B 退还 2
D 收取 1
A 退还 1
B 退还 3
C 收取 4
我想得到的汇总结果是这样的:
物品 净收取数
----------------
A 2
B -5
C 4
D 1其中“净收取数”是表中的 收取-退还 数量,我应该怎么写啊?多谢多谢
物品 操作 数量
----------------
A 收取 3
B 退还 2
D 收取 1
A 退还 1
B 退还 3
C 收取 4
我想得到的汇总结果是这样的:
物品 净收取数
----------------
A 2
B -5
C 4
D 1其中“净收取数”是表中的 收取-退还 数量,我应该怎么写啊?多谢多谢
不知道你用的什么数据库select 物品,sum((case when 操作='退还' then 0-数量 else 数量 end)) 净收取数 from
表 group by 物品
SELECT 物品,
ISNULL((SELECT SUM(数量) FROM 表 T2 WHERE T2.物品 = T1.物品 AND T2.操作 = '收取'), 0) -
ISNULL((SELECT SUM(数量) FROM 表 T2 WHERE T2.物品 = T1.物品 AND T2.操作 = '退还'), 0) AS 净收取数
FROM 表 T1
GROUP BY 物品
物品,
sum(case when 操作='退还' then -数量 else 数量 end) 净收取数
from
t
group by 物品
from 表
group by 物品
t1 group by a