복습로그
[프로그래머스 MySQL] 자동차 대여 기록 별 대여 금액 구하기 본문
728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
💡 CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요.
💡 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요.
예시
대여 기간 별로 일일 대여 요금에 알맞은 할인율을 곱하여 금액을 구하면 다음과 같습니다.
풀이
SELECT HISTORY_ID,
CASE
WHEN DATEDIFF(END_DATE, START_DATE)+1 < 7 THEN ROUND((DATEDIFF(END_DATE, START_DATE)+1) * DAILY_FEE)
WHEN DATEDIFF(END_DATE, START_DATE)+1 >= 7 AND DATEDIFF(END_DATE, START_DATE)+1 <= 29 THEN ROUND(DAILY_FEE*(DATEDIFF(END_DATE, START_DATE)+1)*0.95)
WHEN DATEDIFF(END_DATE, START_DATE)+1 >= 30 AND DATEDIFF(END_DATE, START_DATE)+1 <= 89 THEN ROUND(DAILY_FEE*(DATEDIFF(END_DATE, START_DATE)+1)*0.92)
WHEN DATEDIFF(END_DATE, START_DATE)+1 >= 90 THEN ROUND(DAILY_FEE*(DATEDIFF(END_DATE, START_DATE)+1)*0.85)
END AS FEE
FROM CAR_RENTAL_COMPANY_CAR AS CAR INNER JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY AS HISTORY ON CAR.CAR_ID = HISTORY.CAR_ID INNER JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS PLAN ON CAR.CAR_TYPE = PLAN.CAR_TYPE
WHERE PLAN.CAR_TYPE = "트럭"
GROUP BY HISTORY_ID
ORDER BY FEE DESC, HISTORY_ID DESC
ORDER BY DAILY_FEE DESC 가 아니라 ORDER BY FEE DESC 로 적어야 한다..!
'SQL' 카테고리의 다른 글
[프로그래머스 MySQL] 5월 식품들의 총매출 조회하기 (0) | 2023.03.22 |
---|---|
[프로그래머스 MySQL] 취소되지 않은 진료 예약 조회하기 (0) | 2023.03.21 |
[프로그래머스 MySQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2023.03.14 |
[프로그래머스 MySQL] 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.03.14 |
[프로그래머스 MySQL] 조건에 맞는 사용자 정보 조회하기 (0) | 2023.03.13 |