CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요.
WITH PP AS
(
SELECT DISCOUNT_RATE, DURATION_TYPE
FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN
WHERE CAR_TYPE = '트럭'
)
SELECT HISTORY_ID, ROUND(DUR*DAILY_FEE*(100-RATE)/100) FEE
FROM
(
SELECT HISTORY_ID, DATEDIFF(END_DATE, START_DATE)+1 AS DUR
, CASE WHEN DATEDIFF(END_DATE, START_DATE)+1 BETWEEN 7 AND 29 THEN (SELECT DISCOUNT_RATE FROM PP WHERE DURATION_TYPE LIKE '7%')
WHEN DATEDIFF(END_DATE, START_DATE)+1 BETWEEN 30 AND 89 THEN (SELECT DISCOUNT_RATE FROM PP WHERE DURATION_TYPE LIKE '30%')
WHEN DATEDIFF(END_DATE, START_DATE)+1 >= 90 THEN (SELECT DISCOUNT_RATE FROM PP WHERE DURATION_TYPE LIKE '90%')
ELSE 0 END RATE, DAILY_FEE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY CC
JOIN CAR_RENTAL_COMPANY_CAR CR ON CR.CAR_ID = CC.CAR_ID
WHERE CR.CAR_TYPE = '트럭'
) SUB
ORDER BY FEE DESC, HISTORY_ID DESC'프로그래머스-코딩테스트 > mysql' 카테고리의 다른 글
| 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2023.04.21 |
|---|---|
| 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2023.04.16 |
| 주문량이 많은 아이스크림들 조회하기 (0) | 2023.04.11 |
| 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.04.07 |
| 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.04.06 |