2012-05-08 36 views
1

我需要能夠使用選擇查詢,它會以某種方式生成包含兩個變量STARTDATE和ENDDATE每月增量的條目列表。一個例子是這樣的:選擇查詢,創建一個月度增量條目表

獲取STARTDATE日期和結束日期從表

STARTDATE ENDDATE 
----------- ----------- 
01-JAN-2011 1-DEC-2011 

導致成

CALENDAR 
--------- 
01-JAN-11 
01-FEB-11 
01-MAR-11 
01-APR-11 
01-MAY-11 
01-JUN-11 
01-JUL-11 
01-AUG-11 
01-SEP-11 
01-OCT-11 
01-NOV-11 
01-DEC-11 

如何做任何想法?有人告訴我一種叫做「CONNECT BY」的方法,但它不適用於閏年或某事。

謝謝。

回答

3

像這樣的東西應該工作

SQL> ed 
Wrote file afiedt.buf 

    1 with x as (
    2 select date '2011-01-01' start_date, 
    3   date '2011-12-01' end_date 
    4  from dual 
    5 ) 
    6 select add_months(start_date, level-1) 
    7 from x 
    8* connect by level <= months_between(end_date, start_date) + 1 
SQL>/

ADD_MONTH 
--------- 
01-JAN-11 
01-FEB-11 
01-MAR-11 
01-APR-11 
01-MAY-11 
01-JUN-11 
01-JUL-11 
01-AUG-11 
01-SEP-11 
01-OCT-11 
01-NOV-11 
01-DEC-11 

12 rows selected.