2012-04-23 3 views
1

다음과 같은 쿼리 결과가 있습니다.GROUPED 결과에서 하나의 필드에 여러 행이 있습니다

OTHERS  ATTENDED 
    5    74 

참고이 이미 그룹화 된 결과입니다

status  count 
    ----------------- 
    OTHER  5 
    ATTENDED 74 

나는 다음과 같은 결과를 원한다. 그래서 Group_Concat이 작동하지 않을 수도 있습니다.

검색어 :

SELECT CASE Rstat WHEN 1 THEN 'ATTENDED' 
          WHEN 2 THEN 'TENTATIVE' 
          WHEN 3 THEN 'REJECTED' 
          WHEN 4 THEN 'OUTSTANDING' 
          WHEN 6 THEN 'ACCEPTED' ELSE 'OTHER' END AS 'status',  
          COUNT(Rstat) AS 'count' 
     FROM `eStatus` 
     GROUP BY RSTAT 

다른 아이디어?

답변

1
SELECT SUM(CASE WHEN Rstat = 1 THEN 1 ELSE 0 END) AS ATTENDED, 
     SUM(CASE WHEN Rstat = 2 THEN 1 ELSE 0 END) AS TENTATIVE, 
     SUM(CASE WHEN Rstat = 3 THEN 1 ELSE 0 END) AS REJECTED, 
     SUM(CASE WHEN Rstat = 4 THEN 1 ELSE 0 END) AS OUTSTANDING, 
     SUM(CASE WHEN Rstat = 6 THEN 1 ELSE 0 END) AS ACCEPTED, 
     SUM(CASE WHEN Rstat NOT IN (1,2,3,4,6) THEN 1 ELSE 0 END) AS OTHER 
    FROM eStatus 
+0

굉장! 아주 근접한! 그러나 한 줄에 그것을 필요했습니다. –

+0

@KevinRave : GROUP BY를 삭제하십시오. 실수로 그걸 매달아 두었습니다. –

+0

남자! 당신은 단지 최고입니다! 감사! :-) –

관련 문제