SELECT H.HISTORY_ID, ROUND(C.DAILY_FEE * (DATEDIFF(H.END_DATE, H.START_DATE) + 1) * (1 - IFNULL(DISCOUNT_RATE, '0') / 100)) AS FEE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS H
INNER JOIN CAR_RENTAL_COMPANY_CAR AS C
ON H.CAR_ID = C.CAR_ID AND C.CAR_TYPE = '트럭'
LEFT JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS P
ON C.CAR_TYPE = P.CAR_TYPE AND P.DURATION_TYPE = (
CASE WHEN (DATEDIFF(H.END_DATE, H.START_DATE) + 1) BETWEEN 7 AND 29 THEN '7일 이상'
WHEN (DATEDIFF(H.END_DATE, H.START_DATE) + 1) BETWEEN 30 AND 89 THEN '30일 이상'
WHEN (DATEDIFF(H.END_DATE, H.START_DATE) + 1) >= 90 THEN '90일 이상'
ELSE '' END
)
ORDER BY FEE DESC, H.HISTORY_ID DESC;
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스/자바] 삼각 달팽이 (0) | 2023.11.07 |
---|---|
[프로그래머스/자바] 최대공약수와 최소공배수 (0) | 2023.11.07 |
[프로그래머스/자바] 영어 끝말잇기 (0) | 2023.10.07 |
[프로그래머스/자바] 카펫 (0) | 2023.10.07 |
[프로그래머스/MySQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2023.10.06 |