有一下几张表:(简单例举,实际情况要复杂,比如采购入库有税率,库存金额取值税后))
采购入库表:编码 名称 单价 数量 金额
盘存入库表:编码 名称 单价 数量 金额
销售出库表:编码 名称 单价 数量 金额
调拨出库表:编码 名称 单价 数量 金额
盘亏出库表:编码 名称 单价 数量 金额
库存表:编码 名称 单价 库存数量 库存金额库存=入库+盘存-销售出库-调拨出库-盘亏出库正常不出错情况下,每次入库 出库  库存都是正确的,但由于某些原因,库存可能会不准确
就需要去校验库存之前校验库存都是用 库存=入库+盘存-销售出库-调拨出库-盘亏出库 去挨个商品循环去处理
这对于商品数量不多的情况下 还是可能等待
但是现在商品数量太多,这种方法去处理及其耗时
所以问问大家,有什么好的方法或者 用多表联合的方式去UPDATEL ?

解决方案 »

  1.   


    UPDATE 库存表 a,
    (
    SELECT 编码,SUM(数量)数量 FROM
    (
    SELECT 编码,数量 FROM 采购入库表
    UNION ALL
    SELECT 编码,数量 FROM 盘存入库表
    UNION ALL
    SELECT 编码,-数量 FROM 销售出库表
    UNION ALL
    SELECT 编码,-数量 FROM 调拨出库表
    UNION ALL
    SELECT 编码,-数量 FROM 盘亏出库表
    )t GROUP BY t.编码
    )b SET a.数量 = b.数量 
    WHERE a.编码 = b.编码 AND a.数量 != b.数量;