补全或生成一个一天24小时的数据

来源:互联网 发布:微信支付需要网络吗 编辑:程序博客网 时间:2024/04/30 06:10



SELECT YR, MM
  FROM ( SELECT TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy')) + LEVEL - 1 YR
              FROM DUAL
        CONNECT BY LEVEL <= 3),
       (    SELECT LEVEL MM
              FROM DUAL
        CONNECT BY LEVEL <= 12);


with qq as (select TRUNC(car_time_in) cti from car_enterleaveinfo where rownum=1)
select (case when s.cti is null then qq.cti else s.cti end) ccti,
s.car_type,s.hr TM,
(case when t.count_num is null then 0 else t.count_num end) cnt
from(
with aa as (
SELECT TRUNC(ce.car_time_in) cti,
       to_char(TO_CHAR (ce.car_time_in, 'hh24'),'00') AS XAXIS_DATA
FROM car_enterleaveinfo ce         
GROUP BY TRUNC (ce.car_time_in),
         to_char(TO_CHAR(ce.car_time_in, 'hh24'),'00')),
bb as(SELECT to_char(LEVEL-1,'00') HR
      FROM DUAL
      CONNECT BY LEVEL <= 24),
cc as(select b.car_type from car_enterleaveinfo a,car_info b where a.car_id=b.car_id group by b.car_type)
select aa.cti,aa.xaxis_data,hr,car_type  from aa,bb,cc
where aa.xaxis_data(+)=bb.hr) s,
(SELECT  TRUNC (ce.car_time_in) cti,
         to_char(TO_CHAR (ce.car_time_in, 'hh24'),'00') AS XAXIS_DATA,
         COUNT (ce.ID) AS COUNT_NUM,
         ci.CAR_TYPE AS CAR_TYPE
FROM car_enterleaveinfo ce   
LEFT JOIN car_info ci ON ce.CAR_ID = ci.CAR_ID     
GROUP BY ci.CAR_TYPE,
         TRUNC(ce.car_time_in),
         to_char(TO_CHAR(ce.car_time_in, 'hh24'),'00')) t,qq
where s.cti=t.cti(+) and s.hr=t.xaxis_data(+) and s.car_type=t.car_type(+)
order by s.hr,s.car_type;


0 0