У меня есть таблица с тремя полями. т.е.Получить значение из предыдущей строки/следующей строки SQL
id, transferdate, placeid
---------------------------
1 | 1-4-2014 | 14
2 | 4-4-2014 | 14
5 | 10-4-2014| 14
6 | 1-5-2013 | 13
9 | 10-6-2013| 12
Что я хотел бы достичь ... если можно ... с помощью одного запроса (не важно, сколько подзапросов), но простой SQL (без поворота, КТР и т.д.), чтобы получить то же самое: placeid's transferdate из каждой строки, в предыдущей строке или в следующую строку , чтобы я мог выполнить некоторые вычисления с ними. я имею в виду:
id, transferdate, placeid, nexttransferdate
--------------------------------------------
1 | 1-4-2014 | 14 | 4-4-2014
2 | 4-4-2014 | 14 | 10-4-2014
5 | 10-4-2014| 14 | null (or transferdate)
6 | 1-5-2013 | 13 | null (or transferdate)
9 | 10-6-2013| 12 | null (or transferdate)
я достиг его курсоры в хранимой процедуре или функции или даже используя временную таблицу, и я знаю, как сделать это с встроенным рекурсивными функциями (т.е. Oracle), но моя проблема заключается в том, что мне нужно использовать его в качестве подзапроса в SQL-отчете отчета, поэтому он должен быть простым SQL-кодом как один оператор.
Спасибо за ваш ответ
Пожалуйста, не используйте теги, которые не относятся к вашему вопросу. –
Значит, не обязательно быть агностиком? Вы отметили такое, но ваше объяснение говорит, что оно находится в sql-сервере. Предполагая, что это сервер sql, в какой версии вы работаете? И вы можете использовать cte в отчете. –
@SeanLange: я отметил его как «database-agnostic», так как OP упомянул его несколько раз. Вы не знаете, о каком _report_ он имеет в виду. –