要求: 第一步: 填入订单号及订单数量
      第二步: 由系统自动将订单数量拆分为数个单箱数量(依型号固定如600,300)的小工单.余下数量单独为一个工单.
              例如:订单总量为2000 要自动拆分为 600一个的工单且有单独的序列号
                   0001 600
                   0002 600
                   0003 600
                   0004 200
      第三步: 打印 工单 工人拿去生产
      第四步: 依照产品型号不同有很多工序,工人需要在完成每到工序后填入系统
              例如:  序号  工序  良品  不良 操作者
                      0001  注塑  600    0   张三
                      0001  抛光  595    5   李四
                      0001  研磨  595        王五
                      0002  注塑  595    5
                                ..
                                ..
      第五步: 将零件转入装配车间 填入产品编号 至此完成。
                00001    abc555
                00002    abc666
请谁能帮我看下表格怎么设计,什么时候拆分订单数量。拆分完表格怎么设计。怎么拆分

解决方案 »

  1.   

    订单主表
    订单id,拆分数,总量订单子表
    订单id,拆分id,数量
      

  2.   

    --你看我这闲得
    create table 订单主表
    (
    订单id int identity(1,1),
    拆分数 int,
    总量 int
    )create table 订单子表
    (
    订单id int,
    拆分id int identity(1,1),
    数量 int
    )declare @dd int
    declare @count int
    declare @group intselect @count=2000,@group=600select @dd=IDENT_CURRENT('订单主表')insert into 订单主表
    select @group,@count
    ;WITH ww AS (
    SELECT 1 AS ID,(case when @group>@count then @count else @group end) AS [group]
    UNION ALL
    SELECT ID+1,case when @group*(ID+1)>@count then @count-@group*ID else @group end  
    FROM ww where id<@count/@group+1
    )
    insert into 订单子表
    SELECT @dd,[group] FROM ww select * from 订单主表
    select * from 订单子表订单id        拆分数         总量
    ----------- ----------- -----------
    1           600         2000(1 行受影响)
    订单id        拆分id        数量
    ----------- ----------- -----------
    1           1           600
    1           2           600
    1           3           600
    1           4           200(4 行受影响)