本人写存储过程中,遇到这样一个问题,简单说,由这样一个表,表中有机关代码jg_dm,机关名称jg_mc,人员名称ry_mc,和所犯过错名gc_mc 和过错总类 gclb(包括执法过错 工作过错 个人过错 大意过错,等)
现在需要分机关对个类别下的过错汇总,简要意思如下:机关名 执法过错 工作过错 个人过错 大意过错 .......
A          10       20      12       15
B           4        4       5      6
C            8        0      2       4
D            6        7     6        7 
请问如何实现?
清高手指点!

解决方案 »

  1.   

    使用存储过程中动态创建视图的方式。
    create or replace procedure pname as
    cursor c_1 is select distinct gclb from tbname;
    v_sql:varchar2(2000);
    begin
    for v_c in c_1 loop
        --组合create view 语句。类似于(create view as select ...sum(decode(gclb,'个人过  错',1,0)) 个人过错总数,...)
    end loop;
    execute immediate v_sql;
    end; 
    /
    每次执行完存储过程,从视图中查询数据
    select * from v_name;