쿼리 질문좀 드립니다 !! 0 3 894

by oneg [SQL Query] [2022.08.31 15:33:54]


최근 6개학기를 구하는 쿼리를 짜고있습니다.

만약에 2021년도 1학기를 기준으로 앞 6개학기를 가져오고 싶어요

예를 들어 2021년도 1학기를 조회조건으로 했다면

1. 2021년도 1학기

2. 2020년도 2학기

3. 2020년도 1학기

4. 2019년도 2학기

5. 2019년도 1학기

6. 2018년도 2학기

 

정말 간단한건데 생각이 잘 안나네요..

with 쿼리로 짜고싶은데 잘 모르겟네요 ..

도움을 구합니다 ㅠㅠ

by 우리집아찌 [2022.09.01 11:36:31]

DBMS 은 어떤건가요?


by oneg [2022.09.05 23:43:34]

oracle입니다!


by 마농 [2022.09.06 00:34:56]
SELECT LEVEL lv
     , y - CEIL((LEVEL - s) / 2) year
     , MOD(LEVEL + s, 2) + 1 semester
  FROM (SELECT 2021 y, 1 s FROM dual)
 CONNECT BY LEVEL <= 6
;

WITH t(lv, y, s) AS
(
SELECT 1    lv
     , 2021 y
     , 1    s
  FROM dual
 UNION ALL
SELECT lv + 1
     , y - MOD(s, 2)
     , MOD(s, 2) + 1
  FROM t
 WHERE lv < 6
)
SELECT *
  FROM t
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입