我有一個3字段的表。即從上一行/下一行獲取值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(沒有支點,CTE等)是獲得相同的: placeid的每行的轉移日期, 上一行或下一行 ,以便我可以對它們進行一些計算。 我的意思是:
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)
我曾與在存儲過程或函數,甚至遊標使用臨時表來實現它,我知道如何與內置的遞歸功能(即甲骨文)這樣做,但我的問題是,我需要將它用作報表SQL語句中的子查詢,因此它必須是普通的SQL代碼作爲一個語句。
謝謝您的回答
請不要使用不適用於您的問題的標籤。 – 2014-09-04 13:58:40
所以它不一定是不可知的?你標記是這樣的,但你的解釋說它是在SQL服務器。假設它是SQL服務器你運行的是哪個版本?你可以在報告中使用cte。 – 2014-09-04 14:03:41
@SeanLange:自從OP提到它幾次以來,我已將它標記爲「與數據庫無關」。你不知道他指的是哪一種_report_。 – 2014-09-04 14:06:29