2
我只有三排日期,但我需要有四個作爲我的輸出。我如何告訴sql獲取結束日期的最後一個數據並將其放置在開始日期的最後一行?開始日期和結束日期
我試過滯後和領先,但它似乎無法在Teradata數據庫中工作,我不知道爲什麼。
任何建議將真正幫助或替代。正如要求澄清或需要更多數據一樣。
我只有三排日期,但我需要有四個作爲我的輸出。我如何告訴sql獲取結束日期的最後一個數據並將其放置在開始日期的最後一行?開始日期和結束日期
我試過滯後和領先,但它似乎無法在Teradata數據庫中工作,我不知道爲什麼。
任何建議將真正幫助或替代。正如要求澄清或需要更多數據一樣。
一個可能的選擇:獲取感興趣的記錄集,每行編號,然後自我加入下一行。爲您的關閉添加額外記錄:
WITH numbered AS (
SELECT effect_date, row_number() OVER (ORDER BY effect_date) AS rownum
FROM price
WHERE prod_id='4'
)
SELECT *
FROM (SELECT a.effect_date AS start_date
,b.effect_date AS end_date
FROM numbered a
,numbered b
WHERE b.rownum = a.rownum + 1
UNION
SELECT MAX(effect_date)
,TO_DATE('29991231', 'YYYYMMDD')
FROM numbered
) x
ORDER BY 1
我用了一部分代碼給了我一個想法。謝謝!它現在完美運作。 –
1/1/2009和12/31/2999應該是第一個和最後一個數據。 –