select a.data_time,要取的列名
(select to_char(sysdate+rownum,'yyyymmdd') data_time from dual connect by level<=30) a left join
你的表 b on a.data_time = b.data_time
order by a.data_time
--应该是从今天往前30天吧?
select b.v_date,nvl(a.KEY_column,0) KEY_column from Your_table a
right join (select trunc(sysdate-30) v_date from dual connect by level<=30) b
on (a.Date_column=b.v_date)
order by b.v_date;