运用loop实现游标对日累计表进行统计

drop table tb_lzw_cmnet_tmp1 purge;
create table tb_lzw_cmnet_tmp1
(
       servnumber   varchar(12)  ,
       statis_date  date
);

declare i integer;
begin
   for vddate in 20110601..20110628 loop
			insert into tb_lzw_cmnet_tmp1   
			select /*+ parallel(a, 15) */
			       a.serv_number     ,
			       a.statis_date    
			  from dgdm_mk.tb_mk_ls_data_day a
			 where a.statis_date = to_date(vddate, 'yyyymmdd')
			    and nvl(CMNET_FLUX,0)>0;
			commit;
    end loop;
end
;
/

-- 导出结果
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
set pagesize 0;
SET NEWPAGE NONE HEADING OFF SPACE 0 PAGESIZE 0 TRIMOUT ON TRIMSPOOL ON LINESIZE 2500 colsep | feedback off termout off pages 0  
select trim(servnumber)||'|'||
       statis_date||'|'
  from (select /*+ parallel(a, 10) */
               servnumber,
               max(statis_date) statis_date
          from tb_lzw_cmnet_tmp1 a
         group by servnumber
        ) b
;

你可能感兴趣的:(loop)