안녕하세요.. 며칠전 이곳 도움으로 잘 해결했습니다만.. 또 한번 부탁드려야될것 같습니다. 이것저것 해보다 도저히 안돼서
올립니다.
다름 아니라 2013년도 전반기를 조건에 입력하면
2013년도 상반기포함하여 이전 최종 3년치를 조회하려고 합니다.
즉 2013년도 상반기 (2013 / 1)
2012년도 하반기(2012 / 2)
2012년도 상반기(2012 / 1)
2011년도 하반기(2011 / 2)
2011년도 상반기(2011 / 1)
2010년도 하반기(2010 / 2)
이걸 구하려고 합니다.
컬럼은 년도 컬럼(year), 상하반기 구분컬럼(bangi) (상반기:'1' 하반기: '2')
이렇게 있습니다. 위 리스트를 구할 수 있는 쿼리 좀 부탁드리겠습니다.
WITH 기준 AS ( -- 기준년도 조회 -- SELECT lv , TO_CHAR(year - CEIL((lv-bangi)/2)) year , TO_CHAR(2 - MOD(lv-bangi+1, 2)) bangi FROM (SELECT '2013' year, '1' bangi FROM dual) , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 6) ) SELECT b.sabun , MIN(DECODE(a.lv, 1, b.평가1)) 평가1_1 , MIN(DECODE(a.lv, 1, b.평가2)) 평가2_1 , MIN(DECODE(a.lv, 2, b.평가1)) 평가1_2 , MIN(DECODE(a.lv, 2, b.평가2)) 평가2_2 , MIN(DECODE(a.lv, 3, b.평가1)) 평가1_3 , MIN(DECODE(a.lv, 3, b.평가2)) 평가2_3 , MIN(DECODE(a.lv, 4, b.평가1)) 평가1_4 , MIN(DECODE(a.lv, 4, b.평가2)) 평가2_4 , MIN(DECODE(a.lv, 5, b.평가1)) 평가1_5 , MIN(DECODE(a.lv, 5, b.평가2)) 평가2_5 , MIN(DECODE(a.lv, 6, b.평가1)) 평가1_6 , MIN(DECODE(a.lv, 6, b.평가2)) 평가2_6 FROM 기준 a , 평가 b WHERE a.year = b.year AND a.bangi = b.bangi GROUP BY b.sabun ORDER BY b.sabun ;