YataNox
자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/157340
- CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차ID와 자동차 대여여부를 출력한다
단, 대여여부는 2022년 10월 16일에 대여중인 자동차를 대여 중, 아니면 대여가능으로 표시해주고 AVAILABILITY로 표기한다. 또한 반납 날짜가 10월 16일일 경우에도 대여중으로 표기하고 결과를 자동차 id 기준 내림차 정렬한다.
1. car_id 기준으로 그룹핑한다.
2.. case 문으로 시작일이 10월 16일 보다 작거나 종료일이 16일보다 큰 id를 뽑아서 그 값에 속하는 car_id를 대여중 아닌것을 대여 가능으로 출력한다.
- SQL
mysql : SELECT CAR_ID,
CASE
WHEN CAR_ID IN (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE START_DATE <= '2022-10-16' AND END_DATE >= '2022-10-16') THEN '대여중'
ELSE '대여 가능'
END AS AVILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;
oracle : SELECT car_id,
CASE
WHEN car_id IN (
SELECT car_id
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE start_date <= TO_DATE('2022-10-16', 'yyyy-mm-dd') AND end_date >= TO_DATE('2022-10-16', 'yyyy-mm-dd')
) THEN '대여중'
ELSE '대여 가능'
END AS AVILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY car_id
ORDER BY car_id DESC;
'DB > Programmers SQL' 카테고리의 다른 글
대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.10.23 |
---|---|
자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.10.19 |
성분으로 구분한 아이스크림 총 주문량 (0) | 2023.10.19 |
저자 별 카테고리 별 매출액 집계하기 (0) | 2023.10.19 |
즐겨찾기가 가장 많은 식당 정보 출력하기 (2) | 2023.10.19 |