Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择创建月度增量条目表的查询_Sql_Oracle - Fatal编程技术网

Sql 选择创建月度增量条目表的查询

Sql 选择创建月度增量条目表的查询,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

我需要能够使用一个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-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行。