select a.ym,b.c1,b.c2,b.c3 from
(
select t2.y||t1.m ym
from
(
select '2004'-1 y from dual union
select '2004'+0 from dual union
select '2004'+1 from dual
) t2,
(
select ltrim(to_char(rownum,'00')) m from
all_tables where rownum<13
) t1
) a,
(
select year,sum(a1) c1,sum(a2) c2,sum(a3) c3 from a
where substr(a.year,0,4) in ('2004'-1,'2004'+0,'2004'+1)
) b
where a.ym=b.year(+);
(
select t2.y||t1.m ym
from
(
select '2004'-1 y from dual union
select '2004'+0 from dual union
select '2004'+1 from dual
) t2,
(
select ltrim(to_char(rownum,'00')) m from
all_tables where rownum<13
) t1
) a,
(
select year,sum(a1) c1,sum(a2) c2,sum(a3) c3 from a
where substr(a.year,0,4) in ('2004'-1,'2004'+0,'2004'+1)
) b
where a.ym=b.year(+);
解决方案 »
- oracle 11g
- PL/SQL中用select ...for update 会提示查询数据无法更新
- oracle数据脚本采用bat文件导入,导入的汉字变成了乱码,求解决,急————在线等——
- ORACLE里 CASE DECODE 的问题相关。在线等待
- sql算法的问题
- oracle 查询实例问题 , 一张表里面的值相互比较
- 在win2000下安装Oracle的问题
- 获取一个事务的执行时间的问题!
- 关于实时数据的存储讨论。up有分。
- 我的ManageMentServer启不来了,怎么回事????
- 在存储过程中使用SEQUENCE的问题
- 查询第100~150条的记录,只能用标准SQL语句,能做么?
在论坛看到了许多您的回复,对您的方法感到敬佩。
你对数据库的操作有很厚的功底啊。
SIGH,努力学习中。