Сумма с накоплением -(минус) предыдущий элемент

Темный

tbl_test
id
Хочется получить qry_result
id
Реально ли это сделать только с помощью SQL?
10 ответов

Темный

Тут был период, когда VIG такие задачки всем решал.


Темный

Только я не понял задачу. Почему в последней строке получилось 300?


Темный

SELECT t1.ID, t1.Num, Nz((SELECT Sum(t.Num) FROM Tbl_test AS t WHERE t.ID


Темный

А, так это сумма минус текущий, а не минус предыдущий?


Темный

Неа, это сумма, смещенная на одну строку вниз относительно num :)


Темный

Тут был период, когда VIG такие задачки всем решал.
Читал, помню. Но переделать под себя не получилось.


Темный

SELECT t1.ID, t1.Num, Nz((SELECT Sum(t.Num) FROM Tbl_test AS t WHERE t.IDСпасибо. Самое то. :)


Темный

Вариант без nz
SELECT t1.ID, t1.Num, 
t1.num-(SELECT Sum(t.Num) FROM Tbl_test AS t WHERE t.ID<=t1.ID) AS Sum_Num 
FROM Tbl_test AS t1;


Темный

Тьфу, блин. Ушел учить матчасть. Спасибо.


Темный

Знаки перепутал :)
SELECT t1.ID, t1.Num, 
-t1.num+(SELECT Sum(t.Num) FROM Tbl_test AS t WHERE t.ID<=t1.ID) AS Sum_Num 
FROM Tbl_test AS t1;