- https://school.programmers.co.kr/learn/courses/30/lessons/157339
With counter AS(
SELECT CAR.DAILY_FEE
, CAR.CAR_ID
, CAR.CAR_TYPE
, START_DATE
, END_DATE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS HISTORY
INNER JOIN CAR_RENTAL_COMPANY_CAR AS CAR ON CAR.CAR_ID = HISTORY.CAR_ID AND CAR.CAR_TYPE IN ('세단', 'SUV')
WHERE (START_DATE > '2022-11-30' or END_DATE < '2022-11-01')
)
SELECT DISTINCT CAR_ID
, counter.CAR_TYPE
, ROUND((100-discount_rate)/100 * DAILY_FEE* 30) AS FEE
FROM counter
INNER JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS PLAN ON counter.CAR_TYPE = PLAN.CAR_TYPE AND DURATION_TYPE = '30일 이상'
WHERE (100 - discount_rate)/100 * daily_fee * 30 >= 500000
AND (100 - discount_rate)/100 * daily_fee * 30 < 2000000
ORDER BY 3 DESC, 2 ASC ,1 DESC
원래 CAR_TYPE의 SUV는 나오지 않아야 한다.
세단만이 나와야 하는데, 조건에 해당되어서 일단은 suv값이 같이 나오고 있다.
일단 날짜 조건이 매우 까다롭다.
다들 까다로운 문제라고는 하지만 10시간 매달려도 못풀다니...
쿼리 하나하나 다시 디버깅 해봐야겠다.
어디가 문제일까?