(MySQL) [프로그래머스] 157339번, 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기
-
728x90
157339, 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기
📌 난이도 : LEVEL 4
🧩 프로세스
📚 요구사항
1. 2022년 11월 1일부터 30일까지 대여가능한
2. 자동차의 종류가 세단 또는 SUV
3. 30일간 대여금액이 50만원 ~ 200만원인
4. 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬
✅ 전체 코드
SELECT
CRCR.CAR_ID,
CRCR.CAR_TYPE,
ROUND(CRCR.DAILY_FEE * 30 * (100 - CRCDP.DISCOUNT_RATE) / 100, 0) AS FEE
FROM
CAR_RENTAL_COMPANY_CAR AS CRCR
INNER JOIN
CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS CRCDP
ON
CRCR.CAR_TYPE = CRCDP.CAR_TYPE
WHERE
CRCR.CAR_ID NOT IN (
SELECT
CAR_ID
FROM
CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE
END_DATE >= '2022-11-01'
AND
START_DATE < '2022-12-01'
)
AND
(
CRCR.CAR_TYPE = '세단'
OR
CRCR.CAR_TYPE = 'SUV'
)
AND
CRCDP.DURATION_TYPE = '30일 이상'
GROUP BY
CRCR.CAR_ID
HAVING
FEE BETWEEN 500000 AND 1999999
ORDER BY
FEE DESC,
CAR_TYPE ASC,
CAR_ID DESC
: WHERE 절에 서브쿼리를 생성하여 해당 기간을 제외한 CAR_ID 조회해서 예외처리를 진행하였다.