반응형
1. 문제
*문제 원본은 '문제링크' 참고
2. 학습 내용
1) SELECT 절 내 조건부 컬럼 조회 (조건에 맞춰 FEE값 출력하는 방식으로 접근함)
2) INNER JOIN을 이용한 데이터 조회
🔎 3. 작성 코드
-- 코드를 입력하세요
SELECT b.HISTORY_ID,
FLOOR(a.DAILY_FEE * (1 - (CASE
WHEN DATEDIFF(b.END_DATE, b.START_DATE)+1 >= 90 THEN (SELECT DISCOUNT_RATE FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN WHERE CAR_TYPE = a.CAR_TYPE AND DURATION_TYPE = '90일 이상') / 100
WHEN DATEDIFF(b.END_DATE, b.START_DATE)+1 >= 30 THEN (SELECT DISCOUNT_RATE FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN WHERE CAR_TYPE = a.CAR_TYPE AND DURATION_TYPE = '30일 이상') / 100
WHEN DATEDIFF(b.END_DATE, b.START_DATE)+1 >= 7 THEN (SELECT DISCOUNT_RATE FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN WHERE CAR_TYPE = a.CAR_TYPE AND DURATION_TYPE = '7일 이상') / 100
ELSE 0
END))) * (DATEDIFF(b.END_DATE, b.START_DATE)+1) AS FEE
FROM CAR_RENTAL_COMPANY_CAR AS a
INNER JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY AS b ON a.CAR_ID = b.CAR_ID
WHERE a.CAR_TYPE = '트럭'
ORDER BY FEE DESC, b.HISTORY_ID DESC;
반응형
'프로그래머스' 카테고리의 다른 글
코딩테스트 고득점 Kit - 정렬 (가장 큰 수) (0) | 2023.11.13 |
---|---|
코딩테스트 입문 - 최빈값 구하기 (0) | 2023.05.30 |
코딩테스트 입문 - 평행 (0) | 2023.05.24 |
SQL - 상품을 구매한 회원 비율 구하기_JOIN (0) | 2023.05.24 |
SQL - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기_JOIN (0) | 2023.05.22 |