需要写一个查询语句:select to_char(date,'yyyy-mm-dd'),
count(num)
from tmp_t
where to_char(date,'yyyy-mm-dd') between begintime and endtime
group by to_char(date,'yyyy-mm-dd')现在的情况是tmp_t表中在该时间段内可能并没有连续的数据
而我需要的是在该日没有数据的时候(即关于改日的行不存在)查询结果能够这样:
yyyy-mm-dd 5
yyyy-mm-dd
yyyy-mm-dd 4 ////////////////////////////////////////tmp_t////////////////////////////
日期 数量
yyyy-mm-dd 4
.........
count(num)
from tmp_t
where to_char(date,'yyyy-mm-dd') between begintime and endtime
group by to_char(date,'yyyy-mm-dd')现在的情况是tmp_t表中在该时间段内可能并没有连续的数据
而我需要的是在该日没有数据的时候(即关于改日的行不存在)查询结果能够这样:
yyyy-mm-dd 5
yyyy-mm-dd
yyyy-mm-dd 4 ////////////////////////////////////////tmp_t////////////////////////////
日期 数量
yyyy-mm-dd 4
.........
--将条件格式统一下
select to_char(date,'yyyy-mm-dd'),
count(num)
from tmp_t
where to_date(to_char(date,'yyyy-mm-dd'),'yyyy-mm-dd')
between to_date(begintime,'yyyy-mm-dd')
and to_date(endtime,'yyyy-mm-dd')
group by to_char(date,'yyyy-mm-dd')
from ( select to_date(begintime,'yyyy-mm-dd') + rownum days from all_objects
where rownum <= to_date(endtime,'yyyy-mm-dd') - to_date(begintime,'yyyy-mm-dd')) t1
, tmp_t t2
where t1.days = t2.date(+)
group by t1.days;
select t1.days, count(t2.num)
from ( select to_date(begintime,'yyyy-mm-dd')-1 + rownum days from dual
connect by rownum <=to_date(endtime,'yyyy-mm-dd')-to_date(begintime,'yyyy-mm-dd')+1) t1
, tmp_t t2
where t1.days = t2.date(+)
group by t1.days;
多谢赐教!!
请问shiyiwan,select to_date(begintime,'yyyy-mm-dd')-1+ rownum daysfrom dual
connect by rownum<=to_date(endtime,'yyyy-mm-dd')-to_date(begintime,'yyyy-mm-dd')+1,这个语句测试不成功啊,connect by出错
我一直想写个这样的语句,就是没法实现
原来用的是9i
谢谢shiyiwan
哈哈