如果只是看现库存或者一段时间内库存是否为负:
select k.物料,初始数量+入库数量-销售数量 from k
left join (select 物料,sum(入库数量) as 入库数量 from r group by 物料) r on r.物料=k.物料
left joni (select 物料,sum(销售数量) as 销售数量 from ship group by 物料) s on s.物料=k.物料
如果要检查在库存变化过程中是否有负库存,那就只能做循环,但是sql做循环效率太低,建议用程序数据集,在java里做效率高
实现思路:
1、期初、入库、出库数据合并成视图,按时间排序,期初、入库正数,出库负数
2、循环k表物料,按物料查询视图,初始数量按时间顺序加减出入库数量,判断是否为负,把结果插入返回列表