년도 | 학기 | 학년 | 유급 |
2015 | 1학기 | 1 | 0 |
2015 | 2학기 | 2 | 1 |
2017 | 1학기 | 3 | 0 |
2017 | 2학기 | 4 | 0 |
안녕하세요,
위의 표처럼 한 학생의 학적과 유급상황을 기록한 테이블이 있습니다.
만약 해당 학생이 유급기록이 있다면 유급된 다음 학기부터 학년 - 2를 하여 조회하는 쿼리문을 만들고 싶습니다.
ex) 2015년 2학기에 유급하였으므로 2017년 1학기엔 1학년, 2학기엔 2학년, 2018년 1학기엔 3학년 2학기엔 4학년
어떤 방법을 사용하는게 좋을까요? 질문이 처음이라 난잡한점 이해 바랍니다 ㅜㅜ
WITH t AS ( SELECT 1 학번, '2015' 년도, '1학기' 학기, 1 학년, 0 유급 FROM dual UNION ALL SELECT 1, '2015', '2학기', 2, 1 FROM dual UNION ALL SELECT 1, '2017', '1학기', 3, 0 FROM dual UNION ALL SELECT 1, '2017', '2학기', 4, 0 FROM dual ) SELECT 학번, 년도, 학기, 학년, 유급 , 학년 - NVL(SUM(유급) OVER(PARTITION BY 학번 ORDER BY 년도, 학기 ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) , 0) * 2 결과학년 FROM t ;