Sql 选择创建月度增量条目表的查询
我需要能够使用一个select查询,以某种方式生成一个条目列表,由两个变量STARTDATE和ENDDATE的每月增量组成。示例如下所示: 从表中获取STARTDATE和ENDDATESql 选择创建月度增量条目表的查询,sql,oracle,Sql,Oracle,我需要能够使用一个select查询,以某种方式生成一个条目列表,由两个变量STARTDATE和ENDDATE的每月增量组成。示例如下所示: 从表中获取STARTDATE和ENDDATE 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-1
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
你有什么想法吗?有人告诉我一种叫做“连接方式”的方法,但它不适用于闰年之类的东西
谢谢。像这样的东西应该行得通
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.
SQL>ed
已写入文件afiedt.buf
1,其中x为(
2选择日期“2011-01-01”开始日期,
3日期'2011-12-01'结束日期
4来自双
5 )
6选择添加月份(开始日期,级别1)
来自x的7
8*按级别连接/
加上一个月
---------
2011年1月1日
2011年2月1日
2011年3月1日
2011年4月1日
2011年5月1日
2011年6月1日
2011年7月1日
2011年8月1日
2011年9月1日
2011年10月1日
2011年11月1日
2011年12月1日
选定12行。