select
    1 as type,
    sum(decode(ZTPJ,1,1,0)) as ZTPJ ,
    sum(decode(ZXZC,1,1,0)) as ZXZC ,
    sum(decode(SFXC,1,1,0)) as SFXC ,
    sum(decode(FWZL,1,1,0)) as FWZL ,
    sum(decode(GFZF,1,1,0)) as GFZF ,
    sum(decode(BSXL,1,1,0)) as BSXL ,
    sum(decode(LJZL,1,1,0)) as LJZL 
from t
union all
select
    2 as type,
    sum(decode(ZTPJ,2,1,0)) as ZTPJ ,
    sum(decode(ZXZC,2,1,0)) as ZXZC ,
    sum(decode(SFXC,2,1,0)) as SFXC ,
    sum(decode(FWZL,2,1,0)) as FWZL ,
    sum(decode(GFZF,2,1,0)) as GFZF ,
    sum(decode(BSXL,2,1,0)) as BSXL ,
    sum(decode(LJZL,2,1,0)) as LJZL 
from t
union all
select
    3 as type,
    sum(decode(ZTPJ,3,1,0)) as ZTPJ ,
    sum(decode(ZXZC,3,1,0)) as ZXZC ,
    sum(decode(SFXC,3,1,0)) as SFXC ,
    sum(decode(FWZL,3,1,0)) as FWZL ,
    sum(decode(GFZF,3,1,0)) as GFZF ,
    sum(decode(BSXL,3,1,0)) as BSXL ,
    sum(decode(LJZL,3,1,0)) as LJZL 
from t

解决方案 »

  1.   

    write a procedure 
    for instance:
    create or replace procedure pro_count()
    as
    declare mycursor for cursor is 
       select* from tableName
    begin
      ....
      I thank you may write
    end
      

  2.   

    TO libin_ftsafe(子陌红尘) 你的是ORACLE的语法吧?我在SYBASE里面执行不了也
      

  3.   

    select sum(decode(ZTPJ,1,0)) ztpj1,sum(decode(ztpj,2,0)) ztpj2 ,sum(decode(ztpj,3,0)) 
    from t
    where ....