Oracle
[프로그래머스/ORACLE] 자동차 대여 기록 별 대여 금액 구하기
상후
2023. 11. 19. 12:03
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
반응형