๋ฌธ์ ํธ๋ ๋ฐ์ ๋ง์ ์๊ฐ์ ์์ํ๋ค...
๋ฌธ์
CAR_RENTAL_COMPANY_CAR ํ ์ด๋ธ๊ณผ CAR_RENTAL_COMPANY_RENTAL_HISTORY ํ ์ด๋ธ๊ณผ CAR_RENTAL_COMPANY_DISCOUNT_PLAN ํ ์ด๋ธ์์ ์๋์ฐจ ์ข ๋ฅ๊ฐ '์ธ๋จ' ๋๋ 'SUV' ์ธ ์๋์ฐจ ์ค 2022๋ 11์ 1์ผ๋ถํฐ 2022๋ 11์ 30์ผ๊น์ง ๋์ฌ ๊ฐ๋ฅํ๊ณ 30์ผ๊ฐ์ ๋์ฌ ๊ธ์ก์ด 50๋ง์ ์ด์ 200๋ง์ ๋ฏธ๋ง์ธ ์๋์ฐจ์ ๋ํด์ ์๋์ฐจ ID, ์๋์ฐจ ์ข ๋ฅ, ๋์ฌ ๊ธ์ก(์ปฌ๋ผ๋ช : FEE) ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ๊ฒฐ๊ณผ๋ ๋์ฌ ๊ธ์ก์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ , ๋์ฌ ๊ธ์ก์ด ๊ฐ์ ๊ฒฝ์ฐ ์๋์ฐจ ์ข ๋ฅ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ, ์๋์ฐจ ์ข ๋ฅ๊น์ง ๊ฐ์ ๊ฒฝ์ฐ ์๋์ฐจ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
์ ๋ฆฌ
- ํ ์ด๋ธ : CAR_RENTAL_COMPANY_CAR, CAR_RENTAL_COMPANY_RENTAL_HISTORY, CAR_RENTAL_COMPANY_DISCOUNT_PLAN
- ์๋์ฐจ ์ข ๋ฅ : '์ธ๋จ' ๋๋ 'SUV' ์ธ ์๋์ฐจ
- 2022๋ 11์ 1์ผ๋ถํฐ 2022๋ 11์ 30์ผ๊น์ง ๋์ฌ ๊ฐ๋ฅ
- 30์ผ๊ฐ์ ๋์ฌ ๊ธ์ก : 50๋ง์ ์ด์ 200๋ง์ ๋ฏธ๋ง
- ์๋์ฐจ ID, ์๋์ฐจ ์ข ๋ฅ, ๋์ฌ ๊ธ์ก(์ปฌ๋ผ๋ช : FEE) ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑ
- ๋์ฌ ๊ธ์ก ๋ด๋ฆผ์ฐจ์, ์๋์ฐจ ์ข
๋ฅ ์ค๋ฆ์ฐจ์, ์๋์ฐจ ID ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
ํ์ด
SELECT C.CAR_ID, C.CAR_TYPE, FLOOR(DAILY_FEE * (1-DISCOUNT_RATE/100) *30) FEE
FROM CAR_RENTAL_COMPANY_CAR C JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY H
ON(C.CAR_ID = H.CAR_ID)
JOIN (SELECT *
FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN
WHERE CAR_TYPE IN ('์ธ๋จ', 'SUV')
AND DURATION_TYPE = '30์ผ ์ด์') P
ON (C.CAR_TYPE = P.CAR_TYPE)
GROUP BY CAR_ID
HAVING MAX(END_DATE) <= '2022-11-01'
AND FEE >= 500000
AND FEE < 2000000
ORDER BY FEE DESC, C.CAR_TYPE ASC, C.CAR_ID DESC;
CAR_RENTAL_COMPANY_CAR
ํ ์ด๋ธ๊ณผCAR_RENTAL_COMPANY_RENTAL_HISTORY
ํ ์ด๋ธ์ ์กฐ์ธํ๋ค. ๊ทธ ํ,CAR_TYPE
์ด ์ธ๋จ ๋๋ SUV์ด๋ฉด์ DURATION_TYPE์ด 30์ผ ์ด์์ธ ์๋ธ์ฟผ๋ฆฌ(P)๋ฅผ ์กฐ์ธํ๋ค.CAR_RENTAL_COMPANY_RENTAL_HISTORY
ํ ์ด๋ธ์๋ ์๋์ฐจ์ ๋์ฌ ๊ธฐ๋ก์ด ๋ด๊ฒจ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์ฐจ์ ๋ํด ์ฌ๋ฌ ๋์ฌ ๊ธฐ๋ก๋ค์ด ์๋ค. ์ต๊ทผ ๋์ฌ ๊ธฐ๋ก์ ๊ธฐ์ค์ผ๋ก 2022๋ 11์์ ๋์ฌ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ๋ณด๊ธฐ ์ํดCAR_ID
๋ก GROUP BY ํ๊ณ MAX() ํจ์๋ฅผ ์ด์ฉํด์ ์ต๊ทผ ๋์ฌ์ผ์ด 2022-11-01๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์์ง ํ์ธํ๋ค.- ๋์ฌ ๊ธ์ก์ด 50๋ง์์ด์ 200๋ง์ ๋ฏธ๋ง์ธ์ง ํ์ธํ๋ค.
- ๋์ฌ ๊ธ์ก ๋ด๋ฆผ์ฐจ์, ์๋์ฐจ ์ข ๋ฅ ์ค๋ฆ์ฐจ์, ์๋์ฐจ ID ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
DISCOUNT_RATE
๊ฐ 5%, 8%์ ํํ์ด๊ธฐ ๋๋ฌธ์ 100์ผ๋ก ๋๋๊ณ 1์์ ํด๋น๊ฐ์ ๋บ๋ค. 30์ผ์น์ ๋์ฌ๊ธ์ก์ ๊ตฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ 30์ ๊ณฑํด์ค๋ค.- FLOOR()๋ ์ ์๋ถ๋ถ๋ง ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
'Computer Science > Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DB/MongoDB] BSON(Binary JSON) (0) | 2023.06.03 |
---|---|
[SQL/MySQL] ๊ทธ๋ฃน๋ณ ์กฐ๊ฑด์ ๋ง๋ ์๋น ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ (0) | 2023.05.01 |
[SQL/MySQL] ์๊ฐ๋๋ณ ํต๊ณ ๋ด๊ธฐ (0) | 2023.04.23 |
[SQL/MySQL] Window ํจ์๋ก ํฐ ๊ฐ/์์ ๊ฐ ์กฐํํ๊ธฐ (1) | 2023.04.20 |
[MySQL] GROUP BY ์ฃผ์์ฌํญ (0) | 2023.03.29 |