사용 언어 - MYSQL
프로그래머스 LV 4) 자동차 대여 기록 별 대여 금액 구하기
정답
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;
레퍼런스
- 정답 깃허브
'Stay Hungry Stay Foolish > SQL' 카테고리의 다른 글
[MYSQL] 상품 별 오프라인 매출 구하기 (0) | 2023.06.30 |
---|---|
[MYSQL] 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2023.06.30 |
[MYSQL] 취소되지 않은 진료 예약 조회하기 (0) | 2023.06.29 |
[MYSQL] 조건별로 분류하여 주문상태 출력하기 (0) | 2023.06.29 |
[MYSQL] 조건에 맞는 사용자 정보 조회하기 (0) | 2023.06.29 |
댓글