select namecode2, sum(decode(namecode,11,1,0)) bs,sum(decode(namecode,12,1,0)) ss,sum(decode(namecode,13,1,0)) bk  from
    (select a.NAMECODE,b.dwid,b.NAMECODE2 from eagletest a,eagletest2 b
         where a.dwid (+)= b.dwid
    )
group by NAMECODE2

解决方案 »

  1.   

    duanzilin(寻)真乃高人也,谢谢 ,以后多指教,已结账
      

  2.   

    SQL> select * from eagletest;  NAMECODE       DWID
    ---------- ----------
            11          1
            12          1
            13          1
            11          1
            11          2
            12          2
            11          1
            13          2
            11          2已选择9行。已用时间:  00: 00: 00.03
    SQL> select * from eagletest2;NAMECODE2        DWID
    ---------- ----------
    机关                2
    事业                4
    企业                5
    机关                1
    机关                3
    企业                6已选择6行。已用时间:  00: 00: 00.01
    SQL> select namecode2,
      2  sum(decode(namecode,11,1,0)) a,
      3  sum(decode(namecode,12,1,0)) b,
      4  sum(decode(namecode,13,1,0)) c
      5  from
      6  (select a.namecode,b.dwid,b.namecode2
      7  from eagletest a,eagletest2 b
      8  where a.dwid (+)= b.dwid)
      9  group by namecode2;NAMECODE2           A          B          C
    ---------- ---------- ---------- ----------
    机关                5          2          2
    企业                0          0          0
    事业                0          0          0已用时间:  00: 00: 00.03