조건별로 분류하여 주문상태 출력하기

수이·2025년 3월 10일
0

🟢 코드카타 / SQL

목록 보기
38/81
post-thumbnail

FOOD_ORDER 테이블에서 2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요. 출고여부는 2022년 5월 1일까지 출고완료로 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요.
문제링크

조건정리
1. 출고날짜 2022-5-1까지 : 출고완료

  • 이후 날짜 : 출고대기
  • 미정 : 출고미정
  1. 주문ID 기준 오름차순 정렬
  2. 주문ID, 제품ID, 출고일자, 출고여부

풀이

  1. 보자마자 CASE WHEN을 써야겠다고 생각
SELECT CASE WHEN DATE_FORMAT(OUT_DATE,'%Y-%m-%d') <= '2022-05-01' THEN '출고완료'
            WHEN OUT_DATE IS NULL THEN '출고미정'
            ELSE '출고대기' END AS '출고여부'
FROM FOOD_ORDER
  1. 정렬, 셀렉 추가
SELECT ORDER_ID,
       PRODUCT_ID,
       DATE_FORMAT(OUT_DATE,'%Y-%m-%d'),
       CASE WHEN DATE_FORMAT(OUT_DATE,'%Y-%m-%d') <= '2022-05-01' THEN '출고완료'
            WHEN OUT_DATE IS NULL THEN '출고미정'
            ELSE '출고대기' END AS '출고여부'
FROM FOOD_ORDER
ORDER BY ORDER_ID

이까지 했는데 정답이 아니여서 확인해보니 OUT_DATE 포맷이 잘못되었다는 것을 알게됨

  1. DATE_FORMAT 추가
SELECT ORDER_ID,
       PRODUCT_ID,
       DATE_FORMAT(OUT_DATE,'%Y-%m-%d'),
       CASE WHEN DATE_FORMAT(OUT_DATE,'%Y-%m-%d') <= '2022-05-01' THEN '출고완료'
            WHEN OUT_DATE IS NULL THEN '출고미정'
            ELSE '출고대기' END AS '출고여부'
FROM FOOD_ORDER
ORDER BY ORDER_ID

0개의 댓글

관련 채용 정보