카테고리 없음

Microsoft Query CASE 문

Eastluck 2012. 7. 19. 16:21

엑셀 안에.. Microsoft Query 라는 녀석이 있다~!


이 녀석으로 엑셀의 데이터를 로딩해서 뽑아보려 했더니......


계속 에러가 나는 것이였다. 쿼리 예제는!


SELECT

field1

,    max(case when field2 = 1 then field3 else 0 end)

,    max(case when field2 = 2 then field3 else 0 end)

from table

group by field1


field1으로 group by를 한다음에..

두번째 컬럼은 field2 = 1일때 field3의 값

세번째 컬럼은 field2 = 2일때 fiend3의 값


이렇게 뽑아오는 쿼리였다.

근데.. Microsoft Query로.. xls 또는 xlsx 파일을 불러올 경우.. case 문이 먹지 않는다.


Didn't expect 'field2' alter the SELECT column list.


이 문제를 해결하기 위해서.. 여기저기 구굴링 하다.. 30분의 삽질끝에 알아냈다.

바로 IIF 라는 녀석이다 ㅠㅠ.


그래서 완성된 쿼리!


SELECT

field1

,    max(IIF(field2 = 1, field3 ,0))

,    max(IIF(field2 = 2, field3 ,0))

from table

group by field1


혹시나 모를 삽질하실 사람을 대신해 올려본다 ^^;;