본문 바로가기
Stay Hungry Stay Foolish/SQL

[MYSQL] 자동차 대여 기록 별 대여 금액 구하기

by HANNI하니 2023. 6. 30.

사용 언어 - MYSQL

프로그래머스 LV 4) 자동차 대여 기록 별 대여 금액 구하기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

정답

ROUND, CASE WHEN, DATEDIFF (정답 맞춘 여부 X) 

CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블을 조회해서 트럭일때의 할인율을 확인해야한다.

정해진 할인율이 아니기 때문에!!!

 

두 날짜간의 기간을 구할 땐 DATEDIFF(큰 날짜, 작은 날짜) + 1

 

SELECT HISTORY_ID,
ROUND(DAILY_FEE*
    (CASE
     WHEN DATEDIFF(END_DATE,START_DATE)+1 < 7 THEN 1
     WHEN DATEDIFF(END_DATE,START_DATE)+1 < 30 THEN 0.95
     WHEN DATEDIFF(END_DATE,START_DATE)+1 < 90 THEN 0.92
     ELSE 0.85
     END)
     *(DATEDIFF(END_DATE,START_DATE)+1)) AS FEE

FROM CAR_RENTAL_COMPANY_CAR AS A
JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY AS B
ON A.CAR_ID = B.CAR_ID
JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS C
ON A.CAR_TYPE = C.CAR_TYPE

WHERE C.CAR_TYPE = "트럭"
GROUP BY HISTORY_ID
ORDER BY FEE DESC, HISTORY_ID DESC;

 

 

 

레퍼런스

  • 정답 깃허브

댓글