表1:字段: 日期 字段a 字段b
其中日期字段并不是每月都有记录,比如9月,有可能5月,7月等等在表1中无记录行。
现需要实现用sql取出数据集,该数据集为某年表1中每个月的(12)记录,比如5月,7月没记录,则取出的数据集合应该为
日期 字段a 字段b
01 1 1
02 2 2
. . .
. . .
. . .
05 null null
06 1
07 2 2
. . .
. . .
. . .
12
请问在oracle里用sql语句该如何实现?
其中日期字段并不是每月都有记录,比如9月,有可能5月,7月等等在表1中无记录行。
现需要实现用sql取出数据集,该数据集为某年表1中每个月的(12)记录,比如5月,7月没记录,则取出的数据集合应该为
日期 字段a 字段b
01 1 1
02 2 2
. . .
. . .
. . .
05 null null
06 1
07 2 2
. . .
. . .
. . .
12
请问在oracle里用sql语句该如何实现?
select 日期,sum(字段a),sum(字段b)
from (
select 日期,字段a,字段b from 表1 union all
select '01',null,null from dual union all
select '02',null,null from dual union all
select '03',null,null from dual union all
select '04',null,null from dual union all
select '05',null,null from dual union all
select '06',null,null from dual union all
select '07',null,null from dual union all
select '08',null,null from dual union all
select '09',null,null from dual union all
select '10',null,null from dual union all
select '11',null,null from dual union all
select '12',null,null from dual
)
group by 日期
比如
select ........ from
(select to_char(rownum,'00')m from all_objects where rownum<13)a,
table1 b
where a.m=to_char(b.date1(+),'mm')
and b.date1(+)<date'2010-1-1'
and b.date1(+)>=date'2009-1-1'
group by a.m
我可能没有说清楚,是这样的 我数据库里呢有个year_mon字段存的是比如200801这样的年月,可是200801-200812这十二个月中有的字段有对应的月数据,有的没有。改如何实现?还有一个问题就是如何根据这个year_mon字段来取出这12个月的每个月的总天数显示啊?