求教SQL语句,按条件计算解决办法
求教SQL语句,按条件计算
表结构:
物品 移交类型 数量 重量
A01 A 10 1
A01 B 8 0.8
A01 C 2 0.2
A01 D 2 0.2
B01 A 10 2
B01 D 5 1
C01 A 1 0.1
----------------------------------------------------------------------
计算说明:
A:入库 B :出库 C:入库 D:出库
A01=A-B+C-D=10-8+2-2=2
B01=A-D=10-5=5
C01=A=1
--------------------------------------------------------------------------
得出效果:
物品 数量 重量
A01 2 0.2
B01 5 1
C01 1 0.1
------解决思路----------------------
表结构:
物品 移交类型 数量 重量
A01 A 10 1
A01 B 8 0.8
A01 C 2 0.2
A01 D 2 0.2
B01 A 10 2
B01 D 5 1
C01 A 1 0.1
----------------------------------------------------------------------
计算说明:
A:入库 B :出库 C:入库 D:出库
A01=A-B+C-D=10-8+2-2=2
B01=A-D=10-5=5
C01=A=1
--------------------------------------------------------------------------
得出效果:
物品 数量 重量
A01 2 0.2
B01 5 1
C01 1 0.1
------解决思路----------------------
SELECT 物品,
SUM(CASE 移交类型 WHEN 'A' THEN 1
WHEN 'B' THEN -1
WHEN 'C' THEN 1
WHEN 'D' THEN -1
END * 数量) 数量,
SUM(CASE 移交类型 WHEN 'A' THEN 1
WHEN 'B' THEN -1
WHEN 'C' THEN 1
WHEN 'D' THEN -1
END * 重量) 重量
FROM table1
GROUP BY 物品
物品 数量 重量
---- ----------- -----------
A01 2 0.2
B01 5 1.0
C01 1 0.1