利用数跟欠数一样吗???
如果一样
update tablename set 利用数=欠数

解决方案 »

  1.   

    g90 15的产品一共有20个,目的是满足欠数,利用数是根据欠数和结存数算出的 G90 15 共有20件,根据订单欠数分摊到各订单上,101订单上G90 15 欠10,利用10个,剩下10 继续分摊到102订单上G90 15 的欠数5个上,又剩五个,依次类推 ,当剩余结存当总结存使用完之后,利用数为0,当欠数大于剩余结存数时,利用数为剩余结存数,当欠数小于剩余结存数时,利用数为订单欠数
      

  2.   

    参照一下下面的算法,更一下就可以实现你的要求了(摘自zjcxc邹建的作品中):
    -- 先进先出的数据冲销处理 :
    -- 示例数据
    -- CREATE TABLE 销售订单(单号 VARCHAR(10),日期 DATETIME,货品编码 VARCHAR(10),数量 INT)
    -- INSERT 销售订单 
    -- SELECT 'A1','2005-5-1','ABCD',100 UNION ALL
    -- SELECT 'A2','2005-5-3','ABCD',200 UNION ALL
    -- SELECT 'A3','2005-5-4','ABCD',300 UNION ALL
    -- SELECT 'A4','2005-5-8','ABCD',500
    -- 
    -- CREATE TABLE 销售发货单(单号 VARCHAR(10),日期 DATETIME,货品编码 VARCHAR(10),数量 INT)
    -- INSERT 销售发货单
    -- SELECT 'B1','2005-5-05','ABCD',250 UNION ALL
    -- SELECT 'B2','2005-5-07','ABCD',100 UNION ALL
    -- SELECT 'B3','2005-5-10','ABCD',150'
    -- GO
    -- 
    -- 问题描述:
    --     对于示例数据中的销售订单和销售发货单,由于客户在做销售发货时无法指定本次是要发那一张订单的东西。
    -- 所以销售订单无法与销售发货单关联。客户要求以先进先出的方式统计销售订单的执行情况。对于示例数据,要求结果如下:
    -- 单号        日期             货品编码    订单数量    发货数量     待执行数量       
    -- ---------- ----------------- ------------- -------------- --------------- ------------------   -----------------------
    -- A1         2005-05-01      ABCD             100             100                    0
    -- A2         2005-05-03      ABCD             200             200                    0
    -- A3         2005-05-04      ABCD             300             200                100
    -- A4         2005-05-08      ABCD             500                 0                500
    -- -----------------------------------------------------------------------------------------------------------------------
    --                                       合计          1100         500             600
    -- 
    -- 查询处理的过程
    -- SELECT     A.单号,A.日期,A.货品编码,  
    --    订单数量=A.数量,
    --    发货数量=ISNULL(CASE WHEN A.S数量<B.数量 THEN A.数量 ELSE B.数量-A.P数量 END,0),
    --    待执行数量=CASE WHEN A.S数量<B.数量 THEN 0 ELSE A.S数量-ISNULL(B.数量,A.P数量) END
    -- INTO # FROM(
    --     SELECT 单号,日期=CONVERT(CHAR(10),日期,120),货品编码,
    --         数量=SUM(数量),
    --         P数量=ISNULL((SELECT SUM(数量) FROM 销售订单
    --      WHERE 货品编码=A.货品编码      AND(DATEDIFF(DAY,日期,MIN(A.日期))>0   OR DATEDIFF(DAY,日期,MIN(A.日期))=0 AND 单号<A.单号)),0),
    --         S数量=ISNULL((SELECT SUM(数量) FROM 销售订单
    --              WHERE 货品编码=A.货品编码  AND(DATEDIFF(DAY,日期,MIN(A.日期))>0  OR DATEDIFF(DAY,日期,MIN(A.日期))=0 AND 单号<=A.单号)),0)
    --     FROM 销售订单 A
    --     GROUP BY 单号,CONVERT(CHAR(10),日期,120),货品编码
    -- )A 
    --     LEFT JOIN(
    --         SELECT 货品编码,数量=SUM(数量)
    --         FROM 销售发货单
    --         GROUP BY 货品编码
    --     )B ON A.货品编码=B.货品编码
    --         AND A.P数量<B.数量
    -- ORDER BY A.单号,A.日期,A.货品编码
    -- 
    -- SELECT * FROM #
    -- UNION ALL
    -- SELECT '','','合计',SUM(订单数量),SUM(发货数量),SUM(待执行数量) FROM #
    -- DROP TABLE #
      

  3.   

    谢谢 好好研究一下 如有效立即给分。另外敢问westbulls 是从哪里看到邹大的作品的 俺也想看看