курсор для обновления строки значениями из предыдущей и текущей строк

Товарищи по составлению запросов,

У меня есть следующая таблица :

myTable t1
col2 col3
 2    1
 3    0
 4    0
 5    0
 6    0

и я хочу обновить каждый ноль в столбце 3 значением столбца 3 в предыдущей строке плюс значение столбца 2 в текущей строке. Итак, моя таблица должна выглядеть следующим образом:

myTable t1
col2 col3
 2    1 
 3    4  (1+3)
 4    8  (4+4)
 5    13 (5+8) 
 6    19 (6+13)

Мне здесь не хватает логики, возможно, из-за близорукости. Пробовал с курсором:

DECLARE @var3 FLOAT

DECLARE cursor3 CURSOR FOR
SELECT col2, col3 FROM table1
FOR UPDATE OF col3
OPEN cursor3


FETCH FIRST FROM cursor3
WHILE (@@FETCH_STATUS > -1)
BEGIN
 UPDATE @table1
 SET col3 = isnull(@var3, 0) + isnull(col2, 0)
 WHERE CURRENT OF cursor3
 FETCH NEXT FROM cursor3 INTO @var3
END

но это неправильно. Есть идеи?

Заранее спасибо.

6
задан Lynx Kepler 3 November 2010 в 17:25
поделиться