日期:2014-05-18  浏览次数:20624 次

请问只知道出入库的数量,怎么查某一段时间的库存?
3个表
1、出库表
商品编号 数量 时间
1 5 2011-12-1
1 2 2011-12-2

2、入库表
商品编号 数量 时间
1 1 2011-12-3

3、商品表
商品编号 库存
1 10
2 5

如何查询得出以下结果
商品编号 出库 入库 时间 库存余量
1 5 0 2011-12-1 11
1 2 0 2011-12-2 9
1 0 1 2011-12-3 10

说明一下,商品表中的库存为现在的库存,因为没有保存每个阶段的库存,想通过出入库的记录推算出每个出入库时段当时的库存量,有没有方法?谢谢。

------解决方案--------------------
类似于这样:

select 商品代码,库存量-(
select sum(入库数量) from 入库表 where 商品代码=a.商品代码 and 入库时间>=@时间
)+(
select sum(出库数量) from 出库表 where 商品代码=a.商品代码 and 出库时间>=@时间
)
from 库存 a

------解决方案--------------------
SQL code
select 商品表.商品编号,sum(出库表.数量) 出库,sum(入库表.数量) 入库,
 时间=(case when 入库数>实际数量 when '入库表.入库时间' else '出库表.出库时间'), 
库存余量=(select 商品表.库存+sum(入库表.数量)-sum(出库表.数量)from 商品表,出库表,入库表
where 商品表.商品编号=出库表.商品编号 and 商品表.商品编号=入库表.商品编号)
from 商品表,出库表,入库表
where 商品表.商品编号=出库表.商品编号 and 商品表.商品编号=入库表.商品编号
group by 商品表.商品编号