[SQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기

iinnuyh_s·2024년 1월 12일
0

SQL

목록 보기
17/17
post-thumbnail

특정 기간동안 대여 가능한 자동차들의 대여비용 구하기

풀이

  • 어려웠다... 날짜 설정하는 부분을 잘못 생각해서 헤맸음.
  • '2022-11-1~2022-11-30'까지 대여 가능하고 라는 조건을 충족하기 위해서 'NOT IN END_DATE>'2022-11-01' 로 해주면 되는 것이었다. 대여가 끝나는 날이 2022-11-01 이후라면, 이날부터 빌릴 수가 없으므로.
  • 이것 말고는... 딱히 어려운 부분은 없었다. 요금을 구할 때 소수점 단위로 나오는데, 나는 ROUND로 처리했다. 다른 사람들 풀이 보니 FLOOR, TRUNCATE 다 되는 듯.

    🙆‍♀️ 정답 풀이

    WITH CTE AS(
    SELECT C.CAR_ID,C.CAR_TYPE,C.DAILY_FEE,H.START_DATE,H.END_DATE FROM
    CAR_RENTAL_COMPANY_CAR C JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY H
    ON C.CAR_ID=H.CAR_ID
    WHERE C.CAR_TYPE='세단'or C.CAR_TYPE='SUV')
    
    SELECT DISTINCT C.CAR_ID,P.CAR_TYPE,ROUND((100-discount_rate)/100*DAILY_FEE*30) AS FEE FROM
    CAR_RENTAL_COMPANY_DISCOUNT_PLAN P JOIN CTE AS C 
    ON P.CAR_TYPE=C.CAR_TYPE
    WHERE duration_type regexp ('30일 이상')
    AND ROUND((100-discount_rate)*0.01*DAILY_FEE*30)>=500000 AND ROUND((100-discount_rate)*0.01*DAILY_FEE*30)<2000000
    AND C.CAR_ID NOT IN (SELECT CAR_ID
    FROM CTE
    WHERE END_DATE>'2022-11-01')
    ORDER BY 3 DESC, 2 ASC, 1 DESC;

0개의 댓글