Как получить значение из предыдущей строки результата инструкции SELECTКАК ВЫБРАТЬ ПРЕДЫДУЩАЯ ЗНАЧИТЕЛЬНАЯ ЗНАЧКА?
Если у нас есть таблица под названием cardevent и имеет строки [ID (int), Value (Money)], и у нас есть несколько строк в ней, например
ID --Value
1------70
1------90
2------100
2------150
2------300
3------150
3------200
3-----250
3-----280
так далее ...
Как сделать один запрос, который получит каждый идентификатор строки, значение и предыдущая строка Значение, в котором появляются данные, как следовать
ID --- Value ---Prev_Value
1 ----- 70 ---------- 0
1 ----- 90 ---------- 70
2 ----- 100 -------- 90
2 ------150 -------- 100
2 ------300 -------- 150
3 ----- 150 -------- 300
3 ----- 200 -------- 150
3 ---- 250 -------- 200
3 ---- 280 -------- 250
и далее.
я сделать следующий запрос, но это так плохо в производительности в огромном количестве данных
SELECT cardevent.ID, cardevent.Value,
(SELECT F1.Value
FROM cardevent as F1
where F1.ID = (SELECT Max(F2.ID)
FROM cardevent as F2
WHERE F2.ID < cardevent.ID)
) AS Prev_Value
FROM cardevent
Так может кто-нибудь помочь мне получить лучшее решение для такой задачи?
почему вы помечены 2 различных РСУБД? –
Дубликат этого (другой пользователь, другое имя таблицы): http://stackoverflow.com/questions/742226/how-to-get-a-value-from-previous-result-row-of-a-select- заявление – MicSim
должно быть домашним вопросом .... –