2011-10-10 3 views
1

나는 temp라는 테이블을 가지고 있습니다. 열은 id, telco, shortcode, 단축키입니다.그룹별로 동일한 열을 사용하는 다중 열 조건

id telco shortcode hotkey 
1 asdf 123  ib 
2 gra  123  sb 
3 cc  123  sb 
4 bl  123  ibb 

난 핫키 SB 단축 코드 123

telco ib   sb 
asdf  1   0 
gra  0   1 
cc  0   1 
bl  1   0 

제가 사용하는 경우 핫키 IB 단축 코드 123 카운트 (단축 코드) 그룹 통신 사업자에 의해 통신 사업자에 의해 출력 수 (단축 코드)기를 원하는 MySQL의 쿼리를 사용 쿼리 다음

SELECT COUNT(`shortcode`) WHERE `hotkey` = 'ib' AND `shortcode` = 123 
SELECT COUNT(`shortcode`) WHERE `hotkey` = 'sb' AND `shortcode` = 123 

후 나는 다음과 같은 방법으로 나가

telco ib   

asdf  1   
gra  0   
cc  0   
bl  1  

telco sb 

asdf  1   
gra  0   
cc  0   
bl  1 

하지만 난 원하지 않는이

답변

1

로 'SB'와 단축 코드로 단축키로 두 번째로 단축키를 얼마나 많은 행을 줄 것이다 오라클의

Select 
     Telco, 
     Sum ( Case when hotkey = 'ib' then 1 else 0 end) as ib, 
     Sum ( Case when hotkey = 'sb' then 1 else 0 end) as sb 
From 
     Yourtable 
Group By 
    Telco 

참고 현재 버전은 SQL 서버는

+0

오류를 준다 함수 pushpull.sum가 존재하지 않는다 – salma

+0

"then"이라고 써야 할 때 "Theb"라고 썼다. 나는 그것을 고쳤지 만 당신이 얻는 오류는 이상합니다. 무엇이 그 원인이 될지 모르겠습니다. 아마도 모든 것이 이스케이프 처리되고 하나의 SUM/Case 문으로 시작해야합니다. –

+0

덕분에 보스가 work.many 많은 감사를드립니다. – salma

0

당신은 이미 단지에 SELECT를 던질 필요 비트는 GROUP BY에 대해 걱정하지 마십시오이 꽤 많이.

SELECT COUNT(`shortcode`) WHERE `hotkey` = 'ib' AND `shortcode` = 123 
SELECT COUNT(`shortcode`) WHERE `hotkey` = 'sb' AND `shortcode` = 123 

첫 번째는 'IB'와 123 단축 코드, 당신은 같은 합계 케이스를 사용하려면 123

+0

내가 그것을 알고 피벗 구문을 사용하는 옵션을 가지고 있지만, 내 필요한 형식의 출력을 표시하는 방법에 대해 설명합니다. 위의 형식 출력을 제공하는 mysql 쿼리를 작성하고 싶습니다. – salma

+0

질문에서 명확하게 설명하고 싶을 수도 있습니다. COUNT (단문) 대신에 대신 전화 통신을 선택하도록 변경 한 다음 루프를 통해 각 쿼리를 표시 할 수 있습니다. – jprofitt

+0

디스플레이 통신 사업자 (IB) 다음과 같은 각 쿼리 후 통신 사업자 쇼마다, asdf을 1 이쁜 0 CC 내가 텔코 이름 하나를 보여주고 싶은 1 B1 0 만 0 (BL) 1, 텔코 SB asdf을 0, 이쁜 1, 참조 각 쿼리에 대해 – salma