본문 바로가기
SQL

자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 - 조인

by hoshi03 2024. 12. 9.

https://school.programmers.co.kr/learn/courses/30/lessons/157340

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

차량 대여 일지를 보고 특정 날짜에 대여중인지 아닌지를 구분하는 쿼리

 

10/16/일에 대여중인 차량의 id를 구하는 쿼리

SELECT CAR_ID 
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE '2022-10-16' BETWEEN 
TO_CHAR(START_DATE, 'YYYY-MM-DD') AND TO_CHAR(END_DATE, 'YYYY-MM-DD'

 

위의 id에 포함되면 대여중, 아니면 대여 가능으로 표기한다

CASE
           WHEN CAR_ID IN (
                           SELECT CAR_ID 
                           FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
                           WHERE '2022-10-16' BETWEEN 
                           TO_CHAR(START_DATE, 'YYYY-MM-DD') AND TO_CHAR(END_DATE, 'YYYY-MM-DD')
                           ) 
                           THEN '대여중'
                           ELSE '대여 가능'
       END

 

CASE 구문으로 대여중인 차량이면 대여중, 아니면 대여 가능으로 표기한다

 

SELECT DISTINCT CAR_ID, 
       (CASE
           WHEN CAR_ID IN (
                           SELECT CAR_ID 
                           FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
                           WHERE '2022-10-16' BETWEEN 
                           TO_CHAR(START_DATE, 'YYYY-MM-DD') AND TO_CHAR(END_DATE, 'YYYY-MM-DD')
                           ) 
                           THEN '대여중'
                           ELSE '대여 가능'
       END) AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
ORDER BY CAR_ID DESC