본문 바로가기
Oracle

[프로그래머스/ORACLE] 자동차 대여 기록 별 대여 금액 구하기

by 상후 2023. 11. 19.
728x90
반응형

 

 

https://github.com/ROUTINE-STUDY/Algorithm

알고리즘 스터디를 진행하고 있습니다. 😊
초보들로 구성되어있으며, 열심히 풀어보고 풀이 방식을 공유하고 피드백을 해주는 스터디입니다.
참여 문의는 댓글 혹은 GitHub 주소를 참고해주세요.

문제 출처 :  https://school.programmers.co.kr/learn/courses/30/lessons/151141

 

프로그래머스

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

programmers.co.kr

 

내 쿼리(ORACLE)

 

SELECT AA.HISTORY_ID
     , (DAILY_FEE - (DAILY_FEE * (NVL(DISCOUNT_RATE, 0) * 0.01))) * DURATION AS FEE
  FROM (
        SELECT HISTORY_ID
             , A.DAILY_FEE
             , A.CAR_TYPE
             , END_DATE - START_DATE + 1 AS DURATION
             , CASE WHEN END_DATE - START_DATE >= 90
                    THEN '90일 이상'
                    WHEN END_DATE - START_DATE >= 30
                    THEN '30일 이상'
                    WHEN END_DATE - START_DATE >= 7
                    THEN '7일 이상'
                    ELSE '7일 미만'
                     end AS DURATION_TYPE
          FROM CAR_RENTAL_COMPANY_CAR A
             , CAR_RENTAL_COMPANY_RENTAL_HISTORY B
         WHERE A.CAR_TYPE = '트럭'
           AND A.CAR_ID = B.CAR_ID
     ) AA
 LEFT OUTER JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN C
   ON AA.DURATION_TYPE = C.DURATION_TYPE
  AND C.CAR_TYPE = AA.CAR_TYPE
  ORDER BY FEE DESC, HISTORY_ID DESC;

 

 

 

728x90
반응형

댓글