๐Ÿš— [SQL] 151138 ์ž๋™์ฐจ ๋Œ€์—ฌ ๊ธฐ๋ก์—์„œ ์žฅ๊ธฐ/๋‹จ๊ธฐ ๋Œ€์—ฌ ๊ตฌ๋ถ„ํ•˜๊ธฐ


ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค [SQL] ์ž๋™์ฐจ ๋Œ€์—ฌ ๊ธฐ๋ก์—์„œ ์žฅ๊ธฐ/๋‹จ๊ธฐ ๋Œ€์—ฌ ๊ตฌ๋ถ„ํ•˜๊ธฐ

1. ๋ฌธ์ œ


2. ์‹คํŒจํ•œ ์‹œ๋„

โŒ ์˜ค๋‹ต

SELECT j.car_id, j.car_type, j.daily_fee * ((100 - j.discount_rate)*0.01) * 30 AS fee
FROM (car_rental_company_car c INNER JOIN car_rental_company_discount_plan d ON c.car_type = d.car_type) AS j
     INNER JOIN car_rental_company_rental_history h ON j.car_id = h.car_id
WHERE car_type = '์„ธ๋‹จ' OR 'SUV' AND h.end_date < '2024-11-01'
ORDER BY fee DESC, j.car_type, j.car_id DESC

โœ…ย SQL WHERE ์ ˆ์—์„œ ๋…ผ๋ฆฌ ์˜ค๋ฅ˜ ์ฃผ์˜

โœ… ๋‚ ์งœ ์กฐ๊ฑด์„ ๋ถ€์ •ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•จ

โœ… GROUP BY๋Š” ์ค‘๋ณต ๋ฐฉ์ง€์šฉ์ด ์•„๋‹ˆ๋‹ค.

โœ… ROUND ํ•จ์ˆ˜๋กœ ์‹ค์ˆ˜์ฒ˜๋ฆฌํ•œ๋‹ค.


3. ์ •๋‹ต ์ฝ”๋“œ

SELECT j.car_id, j.car_type, ROUND(j.daily_fee * ((100 - j.discount_rate)*0.01) * 30) AS fee
FROM (
    SELECT c.car_id, c.car_type, c.daily_fee, d.discount_rate
    FROM car_rental_company_car c
    INNER JOIN car_rental_company_discount_plan d
    ON c.car_type = d.car_type AND d.duration_type = '30์ผ ์ด์ƒ') AS j
WHERE car_type IN ('์„ธ๋‹จ', 'SUV')
AND NOT EXISTS (
    SELECT 1
    FROM car_rental_company_rental_history h2
    WHERE h2.car_id = j.car_id
    AND NOT (h2.end_date < '2022-11-01' OR h2.start_date > '2022-11-30')
)
ORDER BY fee DESC, j.car_type, j.car_id DESC;

๐Ÿ“Œ TMI:



Revision #5
Created 26 May 2025 15:06:13 by Dain
Updated 4 July 2025 14:21:55 by Dain