now is better than never
[프로그래머스][Level 4] 자동차 대여 기록 별 대여 금액 구하기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/151141
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
-- 코드를 입력하세요
SELECT history.HISTORY_ID,
ROUND(car.DAILY_FEE * (100 - IFNULL(discount.DISCOUNT_RATE, 0))/100 * history.days) FEE
FROM (SELECT *
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = '트럭') car
JOIN
(SELECT CAR_ID, HISTORY_ID,
DATEDIFF(END_DATE, START_DATE) + 1 days,
(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일 이상'
END) DURATION_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY history) history
ON car.CAR_ID = history.CAR_ID
LEFT JOIN
(SELECT *
FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN
WHERE CAR_TYPE = '트럭') discount
ON car.CAR_TYPE = discount.CAR_TYPE AND history.DURATION_TYPE = discount.DURATION_TYPE
ORDER BY fee DESC, history.history_id DESC
'프로그래머스 > SQL' 카테고리의 다른 글
[프로그래머스][Level 3] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (1) | 2023.10.19 |
---|---|
[LEVEL 4][JOIN] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2023.05.15 |
[LEVEL 2][String, Date] 자동차 평균 대여 기간 구하기 (0) | 2023.05.15 |
[Level 4][SELECT] 서울에 위치한 식당 목록 출력하기 (0) | 2023.01.04 |
[Level 2][SELECT] 3월에 태어난 여성 회원 목록 출력하기 (SQL 날짜 월 출력) (0) | 2023.01.03 |