统计不固定栏目的工资年报的存储过程

类别:数据库 点击:0 评论:0 推荐:

本存储过程成功实现行列转换统计

工资数据是竖表,即一个员工的工资对应多条工资栏目的记录

create or replace procedure prc_rs_gzndbb( p_table in varchar2) is
/*===================================================================================================
名称:prc_rs_gzndbb(procedure)
参数:传入:p_table varchar2
调用:PRC_YD_SHTZTJYH 返回:
功能:统计员工工资发放年度报表
返回:把统计结果插入p_table表中
作者:
编写时间:2005-2-21
修改人:
修改内容:
修改时间:
=====================================================================================================*/
v_lmmc varchar2(20);--栏目名称
v_sql varchar2(1000);
--定义取工资栏目的游标
cursor cur_lmmc is
select distinct lmmc
FROM tmp_gztjlsb;
begin     
     --定义动态SQL
     v_sql:='select rydm,xm';
     --遍历工资栏目并拼写成插入的SQL
     for cur_lmmc_rec in cur_lmmc loop
         v_lmmc:=cur_lmmc_rec.lmmc;
         v_sql:=v_sql||','||'sum(decode(lmmc'||','''||v_lmmc||''',je))'||' '||v_lmmc;        
     end loop; 
     v_sql:=v_sql||' from tmp_gztjlsb group by rydm,xm';
     execute immediate 'insert into '||p_table||' '||v_sql;
     commit;
end prc_rs_gzndbb;

本文地址:http://com.8s8s.com/it/it19377.htm