𝙎𝙌𝙇

[Programmers] 자동차 대여 기록에서 대여중/ 대여 가능 여부 구분하기

콜라맛갈비 2023. 4. 3. 00:06
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/157340

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

SELECT CAR_ID,
       IF(T2.S >0, '대여중', '대여 가능') AVAILABILITY
FROM (
    SELECT CAR_ID, SUM(D) S 
    FROM (
            SELECT *, 
                   IF(START_DATE<='2022-10-16' AND END_DATE>='2022-10-16', 1, 0) D
            FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
         ) T
    GROUP BY CAR_ID ) T2
ORDER BY CAR_ID DESC

 

 

 

SELECT CAR_ID,
MAX(CASE WHEN '2022-10-16' BETWEEN DATE_FORMAT(START_DATE, '%Y-%m-%d') AND DATE_FORMAT(END_DATE, '%Y-%m-%d')
THEN '대여중'
ELSE '대여 가능'
END) AS 'AVAILABILITY'
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC
SELECT CAR_ID, 
    CASE 
        WHEN CAR_ID IN 
        (
            SELECT CAR_ID
            FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
            WHERE '2022-10-16' BETWEEN START_DATE AND END_DATE
        ) THEN '대여중'
        ELSE '대여 가능'
    END AS AVAILABILITY
FROM 
    CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY 
    CAR_ID
ORDER BY 
    CAR_ID DESC;
728x90