结构如下 
jdzh      fwb    A2226 总成单
A2226 调件单
A2226 救急单
A2612 总成单
A1918 总成单
A1532 总成单
A1532 调件单
A1726 总成单
A2009 总成单
A1821 调件单
A2202 总成单
A0603 总成单
A1416 总成单
统计结果要求如下
jdzh      总成单数   调件单数 救急单数 
A2226       1          1       1 
A2612       1          1       1    



求高手指教

解决方案 »

  1.   

    select jdzh ,
    sum(case when fwb='总成单' then 1 else 0 end) 总成单数,
    sum(case when fwb='调件单' then 1 else 0 end) 调件单数,
    sum(case when fwb='救急单' then 1 else 0 end)  救急单数
    from 表名
    group by jdzh 
      

  2.   

    楼上正解,使用行转列来实现。
    可以使用case when ,
    也可以使用decode。
      

  3.   

    楼上正解,使用行转列来实现。
    可以使用case when ,
    也可以使用decode。
      

  4.   


    select jdzh ,
    sum(case when fwb='总成单' then 1 else 0 end) 总成单数,
    sum(case when fwb='调件单' then 1 else 0 end) 调件单数,
    sum(case when fwb='救急单' then 1 else 0 end) 救急单数
    from tb_name group by jdzh 
    --
    select jdzh ,
    sum(decode(fwb,'总成单' ,1,0)) 总成单数,
    sum(decode(fwb,'调件单' ,1,0)) 调件单数,
    sum(decode(fwb,'救急单' ,1,0)) 救急单数
    from tb_name  group by jdzh 
      

  5.   

    SELECT jdzh,
    sum(CASE WHEN fwb='总成单' THEN 1 ELSE 0 END) 总成单数,
    sum(CASE WHEN fwb='调件单' THEN 1 ELSE 0 END) 调件单数,
    sum(CASE WHEN fwb='救急单' THEN 1 ELSE 0 END) 救急单数
    from tb group by jdzh;