表数据如下
PUR单号   采购数量   客户交期    订单量 
A001      200000   2006-06-05   30000
A001      200000   2006-07-01   30000
A001      200000   2006-08-02   40000
得到如下结果
A001    第一批   2006-06-05   60000
A001    第二批   2006-07-01   60000
A001    第三批   2006-08-02   80000
如上采购单A001采购总量为200000,
数量来源于一张客户订单(客户订单总量为10W,分批交货),
现需要将采购单交期和交量按客户订单拆分,每一批的数量计算公式
如下: 采购总量*(订单批量/订单总量)谢谢!

解决方案 »

  1.   

    Create Table Orders
    (PUR单号 Char(4),
     采购数量 Int,
     客户交期 Varchar(10),
     订单量  Int)
    Insert Orders Select 'A001',      200000,   '2006-06-05',   30000
    Union All Select 'A001',      200000,   '2006-07-01',   30000
    Union All Select 'A001',      200000,   '2006-08-02',   40000
    GO
    Select
    PUR单号,
    N'第'+(Select Rtrim(Count(*)) From Orders Where PUR单号=A.PUR单号 And 客户交期<=A.客户交期)+N'批' As 批次,
    客户交期,
    Cast(采购数量*(订单量*1.0/(Select SUM(订单量) From Orders Where PUR单号=A.PUR单号)) As Int) As 拆分数量
    From Orders A
    GO
    Drop Table Orders
    --Result
    /*
    PUR单号 批次 客户交期 拆分数量
    A001 第1批 2006-06-05 60000
    A001 第2批 2006-07-01 60000
    A001 第3批 2006-08-02 80000
    */
      

  2.   

    补充,实际上是这样的:
    有采购单 A001,数量20W,这张采购单是由一张10W的客户订单(分3批交货)进行需求展算而得到的,
    我现在的需求是要把这张采购单按客户订单的分批进行分批,
    PUR单号   采购数量   客户交期    订单量 
    A001      200000   2006-06-05   30000
    A001      200000   2006-07-01   30000
    A001      200000   2006-08-02   40000
    这个是我进行处理后的数据集,
      

  3.   

    你的表设计本来就有问题,这样解决就很麻烦了,如果把表改为两个表,一个为:
    PUR单号   采购数量    
    A001      200000  另一个为:
    客户交期    订单量    PUR单号
    2006-06-05   30000    A001
    2006-07-01   30000    A001
    2006-08-02   40000    A001不就很清楚了,就能解决了,用你的办法(一个表)也能解决,不就看出来方式了么