у меня есть таблица с 3 полями. то есть
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 (без поворота, CTE и т. д.), чтобы получить то же самое: дата переноса места из каждой строки, в предыдущем строку или к следующей строке, чтобы я мог сделать некоторые вычисления с ними. я имею в виду :
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 как один оператор.
Спасибо за ваш ответ
database-agnostic
, так как ОП упоминал об этом несколько раз. Вы не знаете, какой тип отчета он имеет в виду. - person Tim Schmelter   schedule 04.09.2014lead()
иlag()
, так что это можно считать независимым от базы данных. И все современные СУБД поддерживают это и могут считаться современной функцией. - person a_horse_with_no_name   schedule 04.09.2014