-----------------------求一个复杂的库存重新计算SQL------------------
雄牛 2017-06-26 09:17:55 是这样,是一套老系统.
有入库记录表,出库记录表,库存表和库存明细流水表,
每次入库,出库,都会去修改库存表和库存明细流水表.
但有时出现用户操作异常还是什么原因,导致记录表有时有记录,但库存结果不对,要么就是库存没记录,但库存结果正确.
现在如何写一个SQL语句来对入库表,出库表进行重新计算库存表,库存明细表?
我试了一些代码,但效果都不理想,有没什么好思路或示例代码?
入库记录表:
入库单号 物品编号 物品名称 数量 单价 存入仓库 存入库位 日期
20170626001 BG010016 记事本 100 0 553 A 2017-6-26 14:40
20170626002 BG010017 电话机 200 1 553 A 2017-6-26 15:01
20170626002 BG010016 记事本 500 2.35 553 A 2017-6-26 15:01
20170626003 BG010016 记事本 100 2.35 554 C 2017-6-26 15:44
20170626003 BG010017 电话机 110 1 554 C 2017-6-26 15:44
20170626004 BG010017 电话机 10 1 554 C 2017-6-26 16:11
出库记录表:
出库单号 物品编号 名称 数量 单价 来源仓库 来源库位 日期
20170626001 BG010016 记事本 100 2.35 553 A区 2017-6-26 15:44
20170626001 BG010017 电话机 110 1 553 A区 2017-6-26 15:44
20170626002 BG010017 电话机 10 1 553 A区 2017-6-26 16:11
要根据以上的表来重新计算出以下两个表的数据,按不同仓库,库位(库存:是指仓库下的不同区域位置)汇总.
明细表则要,按不同仓库,库位,入库金额做为分类汇总.
库存表
仓库 库位 物品编号 库存数量 库存金额 入库单价
553 A区 BG010016 100 0 0
553 A区 BG010017 280 280 1
553 A区 BG010016 900 2115 2.35
554 C区 BG010016 100 235 2.35
554 C区 BG010017 120 120 1
库存明细流水表
仓库 库位 物品编号 类型 入库单价 记帐数量 记帐金额 结余库存
553 A区 BG010016 入库 0 100 0 100
553 A区 BG010017 入库 1 200 200 200
553 A区 BG010016 入库 2.35 500 1175 500
553 A区 BG010017 入库 1 200 200 400
553 A区 BG010016 入库 2.35 500 1175 1000
553 A区 BG010016 出库 2.35 100 NULL 900
553 A区 BG010017 出库 1 110 NULL 290
554 C区 BG010016 入库 2.35 100 235 100
554 C区 BG010017 入库 1 110 110 110
553 C区 BG010017 出库 1 10 NULL 280
554 C区 BG010017 入库 1 10 10 120