我正在尝试根据先前更新的值来更新销售列的值。例如-
表A
Day growth sales
1 1.1 1
2 1.2 NULL
3 1.3 NULL
我想根据增长来更新销售价值。 因此,第2天将是第1天的销售额*增长。 而第3天将是第2天更新的销售额*增长。 在netezza中不循环就可能吗? 感谢大家。
答案 0 :(得分:0)
您可以使用累积总和和日志来获取累积积:
select t.*,
(case when day = 1 then sales
else (exp(sum(ln(growth)) over (order by day) / growth) *
max(case when day = 1 then sales end) over ()
end) as new_sales
from t;
答案 1 :(得分:0)
DECLARE @_i NUMERIC(18,2) = (SELECT Sales FROM A WHERE Day = '1')
UPDATE A
SET @_i = Sales = @_i * CASE WHEN _Day = '1' THEN (SELECT Sales FROM A WHERE Day = '1')
ELSE GROWTH END
SELECT * FROM A
这是我的答案,请尝试