员工的成绩分为不合格,合格,一般。用1.2.3表示,现在要统计各成绩百分比,怎么写存储过程

解决方案 »

  1.   

    加条语句!nvl(分数/总分数,0) 各成绩百分比  就可以了。不需要存储过程!!
      

  2.   

    员工的成绩分为不合格,合格,一般。用1.2.3表示:可以用case...when...语句。具体的要看你的表结构了
      

  3.   

    select  to_char((select count(1) from table where type = 1)/(select count(1) from table),'990.99')||'%'  from dual;
    以此类推,大意如此
      

  4.   


    with t as(
    select 1 xh,1 cj from dual
    union all
    select 2,1 from dual
    union all
    select 3,2 from dual
    union all
    select 4,1 from dual
    union all
    select 5,2 from dual
    union all
    select 6,1 from dual
    union all
    select 7,3 from dual
    union all
    select 8,2 from dual
    union all
    select 9,1 from dual
    union all
    select 10,3 from dual
    )select sum(decode(cj,1,1))*100/count(1)||'%' 不合格,
            sum(decode(cj,2,1))*100/count(1)||'%' 合格,
            sum(decode(cj,3,1))*100/count(1)||'%' 一般 
     from t不合格                                    合格                                      一般
    ----------------------------------------- ----------------------------------------- -----------------------------------------
    50%                                       30%                                       20%