即pg_qty>0的情况下,如果x_qty 能整除pg_qty,则yf_qty = x_qty /pg_qty
如果不能整除,yf_qty = x_qty /pg_qty的整数+ pg_qty

解决方案 »

  1.   

    不好意思写错了。
    即pg_qty>0的情况下,如果x_qty 能整除pg_qty,则yf_qty = x_qty /pg_qty * pg_qty
    如果不能整除,yf_qty = (x_qty /pg_qty的整数+ 1 ) * pg_qty
      

  2.   

    insert into B 
    select name ,pg_qty, x_qty ,(case when pg_qty=0 then x_qty 
    when (pg_qty>0 and x_qty<pg_qty) then p_qty 
    when (pg_qty>0 and x_qty>pg_qty) then trunc((x_qty-1)/pg_qty)*pg_qty end) as yf_qty
    from A
      

  3.   

    上面的大哥,谢谢你的帮助,不过有点问题
          PG_QTY(包装量) X_QTY(需求) YF_QTY(应发数量)
    ------------- ------------- ----------
            25.00        125.00        100    --> 125
          2000.00        360.90       2000
             0.00        120.00        120
          2000.00        481.20       2000
          2000.00        120.30       2000
          2000.00       4330.80       4000    --> 6000
          2000.00        240.60       2000
          2000.00        240.60       2000
      

  4.   

    select pg_qty, x_qty ,(case when pg_qty=0 then x_qty 
    when (pg_qty>0 and x_qty<pg_qty) then pg_qty 
    when (pg_qty>0 and x_qty>pg_qty) then CEIL(x_qty/pg_qty)*pg_qty end) as yf_qty
    from tr_pickinglist_detail
    问题解决,谢谢
      

  5.   

    我是写错了,应该是:
    insert into B 
    select name ,pg_qty, x_qty ,(case when pg_qty=0 then x_qty 
    when (pg_qty>0 and x_qty<pg_qty) then p_qty 
    when (pg_qty>0 and x_qty>pg_qty) then trunc((x_qty-1)/pg_qty + 1)*pg_qty end) as yf_qty
    from A