CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요.



7일 이하일때 DISCOUNT_RATE가 0프로로 주어지면 쉬우려만
아예 데이터가 없을 때 나타내는 방법을 생각하기가 어려웠다.
그리고 CASE WHEN 다중 WHEN 문은, if else가 아니라는 점 기억하기!
case when (a.END_DATE-a.START_DATE+1) >= 7 then '7일%'
when (a.END_DATE-a.START_DATE+1) >= 30 then '30일%'
when (a.END_DATE-a.START_DATE+1) >= 90 then '90일%'
else '7일%' end
여기서 31이 들어오면 두번째 when 절에 걸리는 것이 아니라,
첫번째 when 절에 걸려버림!!!
SELECT a.HISTORY_ID,
case when a.END_DATE-a.START_DATE+1 >= 7 then b.DAILY_FEE*((100-c.DISCOUNT_RATE)/100)*(a.END_DATE-a.START_DATE+1)
else b.DAILY_FEE*(a.END_DATE-a.START_DATE+1) end "fee"
from CAR_RENTAL_COMPANY_RENTAL_HISTORY a,
CAR_RENTAL_COMPANY_CAR b,
CAR_RENTAL_COMPANY_DISCOUNT_PLAN c
where a.CAR_ID = b.CAR_ID
and b.CAR_TYPE = c.CAR_TYPE
and c.DURATION_TYPE LIKE
case when (a.END_DATE-a.START_DATE+1) BETWEEN 7 and 29 then '7일%'
when (a.END_DATE-a.START_DATE+1) BETWEEN 30 and 89 then '30일%'
when (a.END_DATE-a.START_DATE+1) >= 90 then '90일%'
else '7일%' end
and b.CAR_TYPE = '트럭'
order by 2 desc, 1 desc