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



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;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值