表1:库存
物品编码 数量
001 50
002 66
003 30
004 45
005 78
表2:出库
物品编码 数量 状态
002 3 已完成
001 5 已完成
004 6 已完成
003 10 未出库
001 2 未出库
003 1 未出库
005 4 未出库
004 8 未出库
003 5 未出库
002 22 未出库
想得到的查询结果:库存表减去出库表中对应“物品编码”的“未出库”的数量
即:查询结果,预计出库后的库存量
物品编码 数量
001 48
002 44
003 14
004 37
005 74
请教该如何写?
------解决思路----------------------
写了两个没法测试,楼主参考下
select 物品编码,sum(数量) AS 数量 from (
select 物品编码,数量 from 库存
union all
select 物品编码,-数量 from 出库 where 状态='未出库'
) a group by 物品编码
select 物品编码, 数量-isnull(出库数量,0) AS 数量
from 库存 a left join
( select 物品编码,sum(数量) AS 出库数量 from 出库
where 状态='未出库' group by 物品编码) b
on a.物品编码=b.物品编码