本存储过程成功实现行列转换统计
工资数据是竖表,即一个员工的工资对应多条工资栏目的记录
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;
