OkBublewrap

자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 본문

개발/SQL

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

옥뽁뽁 2025. 1. 14. 10:04

문제 : 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

문제

  1. CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여중인 자동차인 경우 대여중 표시
  2. 대여하지 않는 자동차인 경우 대여 가능 표시하는 컬럼 생성 (availability)
  3. 자동차 ID, availability
  4. 반납 날짜가 2022년 10월 16일 경우에도 대여중
  5. 자동차 ID 기준으로 내림차순

 

풀이

1. 2022년 10월 16일에 대여중인 자동차 대여중, 대여 가능 표시 컬럼 생성(availabilty)

시작일, 마지막일 사이 2022-10-16이 있을면 1(대여중), 0(대여 가능)에 대여중이 있으면 대여중으로, 없으면 대여가능으로

availabilty 컬럼 생성

select 
    car_id,
    CASE
        WHEN MAX(CASE WHEN '2022-10-16' BETWEEN START_DATE AND END_DATE THEN 1 ELSE 0 END) = 1 THEN '대여중'
        ELSE '대여 가능' AS AVAILABILITY 
from CAR_RENTAL_COMPANY_RENTAL_HISTORY

 

 

2. 정렬

자동차 ID 기준으로 내림차순

SELECT
    CAR_ID,
    CASE
        WHEN MAX(CASE WHEN '2022-10-16' BETWEEN START_DATE AND END_DATE THEN 1 ELSE 0 END) = 1 THEN '대여중'
        ELSE '대여 가능'
    END AS AVAILABILITY
FROM
    CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY
    CAR_ID
ORDER BY
    CAR_ID DESC;