강의로 돌아가기
lupin

MYSQL SIMPLE ANSWER

  • 저는 IF문 두개를 사용했고,
  • 만약 대여중이라면 1로 치환하고 개수를 세었습니다.
  • 주의할 점은 COUNT 조건에 NULL이 아닌 0을 채우면 개수가 그대로 세집니다.
SELECT
    CAR_ID,
    IF(
        COUNT(IF('2022-10-16' BETWEEN DATE_FORMAT(START_DATE, '%Y-%m-%d') AND DATE_FORMAT(END_DATE, '%Y-%m-%d'), 1, NULL)) > 0,
        '대여중',
        '대여 가능'
    ) AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC
  • hyunjoo000705@gmail.com

    근데 between으로 사용하면 end_date가 2022-10-16일 때는 포함이 안되지 않나요?

    hyunjoo000705@gmail.com―2024.01.11 14:39
  • lupin

    between은 이상, 이하의 개념으로 알고 있습니다.

    lupin―2024.01.15 19:24
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.