插入缺少的行(s)
我有一个供应/价格曲线表,其中某些项目的零价格行缺失,我想为这些项目插入该行。 该表看起来像这样:
Item Point Price Quantity
-----------------------------
A 1 0 0
A 2 100 5
A 3 200 10
B 1 50 6
B 2 70 8
每个项目的行数可能不同(例如,项目A为3分,其他项目为少于或多于3个)。 在上面,项目B的零价格和数量点缺失,所以更新后的表应该如下所示:
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
在哪里添加新行(零价格/数量的点)并更新其他行的点。 应该为所有项目添加新行,其中点1不是价格= 0和数量= 0.如何在Oracle sql server中执行此操作?
嗯,你可以分两步做。 首先,我将插入point
为0的值,然后递增值:
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
列:
update t
set point = point + 1
where exists (select 1 from t t2 where t2.item = t.item and t2.point = 0);
commit;
链接地址: http://www.djcxy.com/p/62071.html