[SQL] 조건별로 분류하여 주문상태 출력하기
Programmers / MySQL / Lv.3
5월 1일 기준이라는 말이 정말 이해가 가지 않았다
그래서 PRODUCE_DATE를 5월 1일 기준으로 잡아야 하나 고민 하는 시간이 있었고,
입고날짜라는 컬럼이 있는 것이 무슨 의미일까 고민하였다
물건을 생산하면 '생산날짜'가 있을 것이고, 그 생산한 물건을 출고하면 '출고날짜'가 있을텐데
'입고날짜'는 무엇을 의미하는 것인지... 반품을 뜻하는 것일까?
무튼 여러 고민 끝에 아무것도 되지 않기 때문에 문제의 지시대로 값을 출력하였더니 되었다
너무 고민하지 말자
SELECT ORDER_ID,
PRODUCT_ID,
DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE,
CASE WHEN OUT_DATE <= '2022-05-01'
THEN '출고완료'
WHEN OUT_DATE > '2022-05-01'
THEN '출고대기'
ELSE '출고미정'
END AS '출고여부'
FROM FOOD_ORDER
-- WHERE PRODUCE_DATE LIKE '%05-01%'
ORDER BY ORDER_ID ASC;
[해석]
SELECT ORDER_ID,
PRODUCT_ID,
DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE,
CASE WHEN OUT_DATE <= '2022-05-01'
THEN '출고완료'
WHEN OUT_DATE > '2022-05-01'
THEN '출고대기'
ELSE '출고미정'
END AS '출고여부'
: 5월 1일까지이기 때문에 출고날짜(OUT_DATE)가 '2022-05-01'날짜보다 적어야 함
: 좀 더 명확히 해주려면 DATE('2022-05-01')이라고 기입
FROM FOOD_ORDER
-- WHERE PRODUCE_DATE LIKE '%05-01%'
ORDER BY ORDER_ID ASC;
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/131113