需求:表A AAC001 ALC034
0001 2011-06-25
0002 2011-05-25
需要查询的结果是,将ALC034与当前日期进行比如,将相差的月份罗列出来。假设今日为2011-08-24,期望得到的结果集如下: AAC001 ******
0001 2011-07
0001 2011-08
0002 2011-06
0002 2011-07
0002 2011-08
0001 2011-06-25
0002 2011-05-25
需要查询的结果是,将ALC034与当前日期进行比如,将相差的月份罗列出来。假设今日为2011-08-24,期望得到的结果集如下: AAC001 ******
0001 2011-07
0001 2011-08
0002 2011-06
0002 2011-07
0002 2011-08
解决方案 »
- oracle数据库无故连接不上,但重启服务器之后可以恢复连接,是怎么回事??
- pl/sql 连接oracle10g 失败......
- Oracle建立索引时没有指定表空间,那这些索引去哪了,查不到
- 我想寫這樣一個procedure 大家來看看怎麼做
- 请教:我用dbca建了一个数据库,为什么再omc里面找不到?
- 请问exp的query参数怎么用啊?
- 请问ORACLE的过程PROCEDURE中是不是不能用嵌套子查询??!!
- 初学者简单问题,Oracle8i中的security Manager工具Storage Manager工具哪里去了?
- JSP连接Oracle9,请进来检分!简单得不能再简单了吧!
- Oracle 安装问题?急!!!
- 数据库事务 锁和并发问题请教....
- oracle rac表
---------- -------------------- ---------- ---------- --------------------------------
7369 SMITH 2011/08/25 1980/12/17 368.277535
7499 ALLEN 2011/08/25 1981/02/20 366.180761
7521 WARD 2011/08/25 1981/02/22 366.116245
7566 JONES 2011/08/25 1981/04/02 364.761406
7654 MARTIN 2011/08/25 1981/09/28 358.922697
7698 BLAKE 2011/08/25 1981/05/01 363.793665
7782 CLARK 2011/08/25 1981/06/09 362.5356
7788 SCOTT 2011/08/25 1987/04/19 292.213019
7839 KING 2011/08/25 1981/11/17 357.277535
7844 TURNER 2011/08/25 1981/09/08 359.567858
7876 ADAMS 2011/08/25 1987/05/23 291.083987
7900 JAMES 2011/08/25 1981/12/03 356.729148
7902 FORD 2011/08/25 1981/12/03 356.729148
7934 MILLER 2011/08/25 1982/01/23 355.083987已选择14行。
[SYS@myorcl] SQL>WITH T1 AS
2 (SELECT '0001' AAC001, DATE '2011-06-25' ALC034
3 FROM DUAL
4 UNION
5 SELECT '0002' AAC001, DATE '2011-05-25' ALC034 FROM DUAL)
6 SELECT AAC001, COLUMN_VALUE
7 FROM T1,
8 TABLE(CAST(MULTISET
9 (SELECT TO_CHAR(ADD_MONTHS(TRUNC(ALC034, 'mm'), LEVEL),
10 'yyyy-mm')
11 FROM DUAL
12 CONNECT BY LEVEL <=
13 MONTHS_BETWEEN(TRUNC(SYSDATE, 'mm'),
14 TRUNC(ALC034, 'MM'))) AS
15 SYS.ODCIVARCHAR2LIST));AAC0 COLUMN_VALUE
---- --------------------
0001 2011-07
0001 2011-08
0002 2011-06
0002 2011-07
0002 2011-08[SYS@myorcl] SQL>
luoyoumou,这位朋友,谢谢你回复,但是你的结果不是我希望, 月份差我可以拿到,但是我的目的是把月份差,按照月份罗列出来
如:一月和六月,相差5个月,我希望的结果是,2,3,4,5,6
感谢你的解答