2016-03-22 10 views
0

私は、いくつかの項目でゼロ価格帯がなく、それらの項目にその行を挿入する必要がある供給/価格曲線の表を持っています。テーブルは次のようになります不足行を挿入

Item Point Price Quantity 
-----------------------------  
A  1  0  0 
A  2  100  5 
A  3  200  10 
B  1  50  6  
B  2  70  8 

項目ごとの行の数は異なることができる(のような他の項目の3つの項目Aの点、及びより少ない又はより多くのポイント)。

Item Point Price Quantity 
-----------------------------  
A  1  0  0 
A  2  100  5 
A  3  200  10  
B  1  0  0 
B  2  50  6  
B  3  70  8 
新しい行(ゼロ価格/数量と点)を加え

との点:更新されたテーブルはこのようになりますので、上記では、ゼロ価格及び数量点が、項目Bのために欠落しています他の行が更新されます。ポイント1が価格= 0でなく数量= 0でないすべてのアイテムに対して新しい行を追加する必要があります。Oracle SQL Serverでそれを行う方法は?

答えて

3

ええと、あなたは2つのステップでこれを行うことができます。まず、私は0の値でpointを挿入すると、値インクリメント:

update t 
    set point = point + 1 
    where exists (select 1 from t t2 where t2.item = t.item and t2.point = 0); 

commit; 
:次に

insert into t(item, point, price, quantity) 
    select item, 0 as point, 0 as price, 0 as quantity 
    from t 
    group by item 
    having min(price) <> 0; 

を、point列をインクリメント