본문 바로가기
컴퓨터이야기/MS-SQL

sql 에서 셀렉트 하기 (if문)

by 변화지시자 2009. 11. 21.
반응형

데이터는 이렇게 들어 있습니다.

아파트명, 동, 호수, 이름, 구분

여기서 구분은 4개로 나뉘어져 있습니다. A,B,C,D 이렇게요..

여기서 아파트별, 구분자를 구할려구 합니다.

구할려고 하는 것은

아파트명, 전체 수량, A의 수량, B의 수량, C의 수량, D의 수량

이것을 동시에 구할려구 하니까 Query 문을 못날리겠네요..

고수님들의 답변을 기다립니다.






SQL Server 인 경우 Case를 이용하세요

case 구분컬럼 when 'A' Then 1 else 0 end
위 문자의 의미는 아파트가 같은 구분들 중에서 구분값이 'A'인 것 들만 한 개로 인정한다는 의미 입니다.
그것 들의 Sum 을 하면 'A'값 들의 갯수가 되겠죠!!!

select 아파트명,count(*),
sum(case 구분컬럼 when 'A' Then 1 else 0 end ),
sum(case 구분컬럼 when 'B' Then 1 else 0 end ),
sum(case 구분컬럼 when 'C' Then 1 else 0 end)
From 테이블
group by 아파트명