我有一个供应/价格曲线表,对于某些项目零价行缺失,我想为这些项插入该行。该表如下所示:
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个点,对于另一个项目为少于或多个点)。在上文中,项目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点不是Price = 0且Quantity = 0.如何在Oracle sql server中执行此操作?
答案 0 :(得分:3)
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;