select sbxh,case when max(dydj)=1 then sum(1) else 0 end vol_500 ,
case when max(dydj)=3 then sum(1) else 0 end vol_220,
case when max(dydj)=4 then sum(1) else 0 end vol_110
from capacitor group by sbxh

解决方案 »

  1.   

    select sbxh,decode( max(dydj), 1, sum(1), 0) vol_500 ,
    decode( max(dydj), 3, sum(1), 0) vol_220 ,
    decode( max(dydj), 4, sum(1), 0) vol_110
    from capacitor group by sbxh
      

  2.   

    SELECT
     SBXH,
     CASE WHEN MAX(DYDJ)=1 
           THEN SUM(1)
           ELSE 0
     END VOL_500,
     CASE WHEN MAX(DYDJ)=3
           THEN SUM(1)
           ELSE 0
     END VOL_220,
     CASE WHEN MAX(DYDJ)=4
           THEN SUM(1)
           ELSE 0
     END VOL_110
    FROM
      CAPACITOR
    GROUP BY SBXH
      

  3.   

    rickyelf(elf)的方法中使用了decode效率较高一点。推荐!