74: 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/157339
정답 코드:
SELECT
cc.CAR_ID,
cc.CAR_TYPE,
FLOOR(cc.DAILY_FEE * 30 * (100 - dp.DISCOUNT_RATE) / 100) AS FEE
FROM CAR_RENTAL_COMPANY_CAR cc
JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN dp
ON dp.CAR_TYPE = cc.CAR_TYPE
AND dp.DURATION_TYPE = '30일 이상'
LEFT JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY rh
ON rh.CAR_ID = cc.CAR_ID
# 2022년 11월 1일부터 2022년 11월 30일까지 대여된 자동차
AND rh.START_DATE < '2022-12-01'
AND rh.END_DATE >= '2022-11-01'
WHERE cc.CAR_TYPE in ('세단', "SUV")
AND rh.HISTORY_ID IS NULL # 대여기록이 없는 자동차
AND (cc.DAILY_FEE * 30 * (100 - dp.DISCOUNT_RATE) / 100) >= 500000
AND (cc.DAILY_FEE * 30 * (100 - dp.DISCOUNT_RATE) / 100) < 2000000
ORDER BY FEE DESC, cc.CAR_TYPE ASC, cc.CAR_ID DESC;
문제 풀이때 했던 생각.
| # 차랑정보 CAR_RENTAL_COMPANY_CAR cc # 자동차 대여 기록 정보 CAR_RENTAL_COMPANY_RENTAL_HISTORY rh # 대여기간별 할인 정책 CAR_RENTAL_COMPANY_DISCOUNT_PLAN dp # 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 # 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능 # 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차 # 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력 # 결과는 대여 금액을 기준으로 내림차순 정렬 # 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬 # 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬 |
75: 자동차 대여 기록 별 대여 금액 구하기
문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/151141
정답 코드:
SELECT
rh.HISTORY_ID,
FLOOR(
cc.DAILY_FEE
* (DATEDIFF(rh.END_DATE, rh.START_DATE) + 1) # 날짜 차이
* (100 - IFNULL(dp.DISCOUNT_RATE, 0)) / 100
) AS FEE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY rh
JOIN CAR_RENTAL_COMPANY_CAR cc
ON cc.CAR_ID = rh.CAR_ID
LEFT JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN dp
ON dp.CAR_TYPE = cc.CAR_TYPE
AND dp.DURATION_TYPE =
CASE
WHEN (DATEDIFF(rh.END_DATE, rh.START_DATE) + 1) >= 90 THEN '90일 이상'
WHEN (DATEDIFF(rh.END_DATE, rh.START_DATE) + 1) >= 30 THEN '30일 이상'
WHEN (DATEDIFF(rh.END_DATE, rh.START_DATE) + 1) >= 7 THEN '7일 이상'
ELSE NULL
END
WHERE cc.CAR_TYPE = '트럭'
ORDER BY FEE DESC, HISTORY_ID DESC
문제 풀이때 했던 생각.
| # 차랑정보 CAR_RENTAL_COMPANY_CAR cc # 자동차 대여 기록 정보 CAR_RENTAL_COMPANY_RENTAL_HISTORY rh # 대여기간별 할인 정책 CAR_RENTAL_COMPANY_DISCOUNT_PLAN dp # 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해 # 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력 # 대여 금액을 기준으로 내림차순 정렬, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬 |
'E.코드카타 > Level 5' 카테고리의 다른 글
| 코드카타 Level.5 76 (0) | 2026.02.06 |
|---|---|
| 코드카타 Level.5 71~73 (1) | 2026.01.22 |
| 코드카타 Level.5 68~70 (0) | 2026.01.19 |
