※ 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/157339
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해결 TIP
문제에서 주어진대로 차례대로 진행해보자.
1) 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능한 경우
SELECT CAR_ID, CAR_TYPE, DAILY_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_ID NOT IN (SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE END_DATE > '2022-11-01' AND START_DATE < '2022-12-01')
AND CAR_TYPE IN ('세단','SUV');
2) 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차
아래 전체 코드와 같다.
전체 코드
SELECT CAR_ID, A.CAR_TYPE, ROUND((30*DAILY_FEE*(100-DISCOUNT_RATE)/100)) AS FEE
FROM (
SELECT CAR_ID, CAR_TYPE, DAILY_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_ID NOT IN (SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE END_DATE > '2022-11-01' AND START_DATE < '2022-12-01')
AND CAR_TYPE IN ('세단','SUV')) AS A
JOIN (SELECT CAR_TYPE,DISCOUNT_RATE FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN WHERE DURATION_TYPE='30일 이상') AS B
ON A.CAR_TYPE=B.CAR_TYPE
HAVING FEE>=500000 AND FEE<2000000
ORDER BY FEE DESC, CAR_TYPE, CAR_ID DESC;
'SQL' 카테고리의 다른 글
[SQL] 재구매가 일어난 상품과 회원 리스트 구하기, GROUP BY (1) | 2025.01.03 |
---|---|
[SQL] 입양 시각 구하기(1), SET (2) | 2024.07.17 |
[SQL] 조건에 맞는 사용자 정보 조회하기, CONCAT, INSERT (0) | 2024.07.16 |
[SQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기, CONCAT (0) | 2024.07.15 |
[SQL] 업그레이드 할 수 없는 아이템 구하기, IS NULL (0) | 2024.07.14 |
댓글