[프로그래머스_LV3] 자동차 대여중/대여가능 구분하기

이경영·2023년 6월 5일
0

오라클

목록 보기
11/43

문제 :

SELECT CAR_ID, CASE WHEN CAR_ID NOT IN 
            (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
    		WHERE '20221016' BETWEEN TO_CHAR(START_DATE, 'YYYYMMDD') 
            	AND TO_CHAR(END_DATE, 'YYYYMMDD')) THEN '대여 가능'
                ELSE '대여중'
                END AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;

설명 :

원래 했다가 실패한 sql문은 20221016에 집중한 case when 문을 만들었다.

CASE WHEN '20221016' 
BETWEEN TO_CHAR(START_DATE, 'YYYYMMDD') AND TO_CHAR(END_DATE, 'YYYYMMDD')) THEN '대여 가능'
                ELSE '대여중'
                END AS AVAILABILITY

까지 만들었으나. 이 문장을 어떤식으로 바꿔야할지 알지못했음. 이후 서브쿼리를 이용한 방식으로 기간 내에 들어가는 ID가 아닌경우에는 '대여가능' 들어가는 경우에는 '대여중' 으로 표시함. => NOT IN 말고 IN을 써도 가능하다.

서브쿼리를 활용하는 방법을 더욱 시도해보도록 하자.

관련문법 CASE WHEN .. THEN.. ELSE .. END

CASE 컬럼명 | 표현식 WHEN 조건식1 THEN 결과1
    WHEN 조건식2 THEN 결과2
    WHEN 조건식n THEN 결과n 
    ELSE 결과
    END
profile
꾸준히

0개의 댓글