[코드카타] SQL 14 자동차 대여 기록 별 대여 금액 구하기
14. 자동차 대여 기록 별 대여 금액 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/151141
문제 : CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요.
#조건 1 : 대여 기간 추출 #조건 2 : 조건으로 '트럭'이고, 대여 기간에 따른 '할인율' 추출 #조건 3 : 요금 계산식 작성 및 추출 select history_id, round((daily_fee * (datediff(end_date,start_date) + 1))*(100-ifnull(discount_rate,0))/100,0) fee from ( select *, case when (datediff(end_date,start_date) + 1) < 7 then 0 when (datediff(end_date,start_date) + 1) < 30 then '7일 이상' when (datediff(end_date,start_date) + 1) < 90 then '30일 이상' else '90일 이상' end as discount_r from CAR_RENTAL_COMPANY_RENTAL_HISTORY) a join CAR_RENTAL_COMPANY_CAR b on a.car_id = b.car_id and b.car_type = '트럭' left join CAR_RENTAL_COMPANY_DISCOUNT_PLAN c on b.car_type = c.car_type and a.discount_r = c.duration_type order by 2 desc, 1 desc ;
#생각해보기 #조건을 어떻게 붙일 수 있는지 잘 생각하기!