안녕하세요. 쿼리 질문 드릴 것이 있습니다.
도움 부탁 드립니다. 선배님들
아래 하나의 테이블에서 JOB 데이터별로 조건을 주어 값을 가져오고 있습니니다.
만약 where 조건으로 BB 의 JOB 데이터별로 가져올때 PRICE 가 NULL 인경우 AA 의 값을 가져오려고 하면 어떻게 조건을 주어야할까요?
초보라서 잘 모르겠습니다. ㅠ.ㅠ
GROUP SUB SECTION PRICE JOB
100 10 A100 1.0 AA
100 11 A101 2.0 AA
100 11 A102 4.0 AA
100 10 A100 5.0 BB
100 11 A101 NULL BB
100 11 A102 NULL BB
100 10 A100 5.0 CC
100 11 A101 5.0 CC
100 11 A102 9.0 CC
결과 : JOB 은 컬럼에서 가져오지 않습니다.
GROUP SUB SECTION PRICE
100 10 A100 5.0
100 11 A101 2.0
100 11 A102 4.0
Comment 3
-
이리
2014.08.11 13:21
-
군고구마
2014.08.12 21:16
WITH CTE_A (SUB,SECTION,PRICE)AS(SELECT A.SUB,A.SECTION,A.PRICEFROM test_table AS AINNER JOIN test_table AS BON A.SUB = B.SUB AND A.SECTION = B.SECTIONWHERE A.JOB = 'AA' AND B.PRICE IS NULL)SELECT AA.SUB,AA.SECTION,AA.JOB,CASE WHEN AA.JOB = 'BB' AND AA.PRICE IS NULL THEN BB.PRICEWHEN AA.JOB <> 'BB' THEN AA.PRICEWHEN AA.JOB = 'BB' THEN AA.PRICEEND AS PRICEFROM test_table AS AAFULL JOIN CTE_A AS BBON AA.SUB = BB.SUB AND AA.SECTION = BB.SECTION -
군고구마
2014.08.12 21:16
이게 맞을라나 모르겠네요
셀프조인 걸어서 CASE문으로 처리하시면 되지 않을까 싶습니다.