목차
https://school.programmers.co.kr/learn/courses/30/lessons/151141
WITH value AS (
SELECT his.history_id,car.daily_fee, car.car_type,
DATEDIFF(end_date, start_date) + 1 AS period,
CASE
WHEN DATEDIFF(end_date, start_date) + 1 >= 90 THEN '90일 이상'
WHEN DATEDIFF(end_date, start_date) + 1 >= 30 THEN '30일 이상'
WHEN DATEDIFF(end_date, start_date) + 1 >= 7 THEN '7일 이상'
ELSE 'NONE' END AS duration_type
FROM car_rental_company_rental_history AS his
INNER JOIN car_rental_company_car AS car ON car.car_id = his.car_id
WHERE car.car_type = '트럭')
SELECT value.history_id,
ROUND(value.daily_fee * value.period *
(100 - IFNULL(plan.discount_rate,0)) / 100) AS FEE
FROM value
LEFT JOIN car_rental_company_discount_plan AS plan
ON plan.duration_type = value.duration_type
AND plan.car_type = value.car_type
ORDER BY FEE DESC, value.history_id DESC
'코딩테스트[파이썬] > 프로그래머스 sql 고득점 kit' 카테고리의 다른 글
String, Date조건별로 분류하여 주문상태 출력하기 (0) | 2024.02.27 |
---|---|
String, Date - 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.02.27 |
String, Date조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2024.02.24 |
String, Date자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2024.02.24 |
[다시보기]IS NULL업그레이드 할 수 없는 아이템 구하기 (0) | 2024.02.23 |