문제에서 원하는 것은
1. 5월 1일을 기준으로 출고여부가 달라져야하며
2. 주문 ID를 기준으로 정렬을 해야한다.
테이블을 보고 하나씩 sql을 작성하면
우선 1. 5월 1일을 기준으로 출고여부 sql은
CASE
WHEN (OUT_DATE <= '2022-05-01') THEN '출고완료'
WHEN (OUT_DATE > '2022-05-01') THEN '출고대기'
ELSE '출고미정'
END 출고여부
CASE문을 가지고 작성하였다.
"WHEN 조건 THEN 출력값" 으로 작성하면 됨으로 위 sql을 보면 5월 1일을 넘지 않으면 "출고완료", 넘으면 "출고대기", 출고 예정이 없으면 "출고미정"을 출력하도록 작성을 하였다.
마지막으로 2. 주문_ID로 정렬을 하는 sql은
ORDER BY ORDER_ID ASC;
이므로 sql을 다 합치면
SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, "%Y-%m-%d") OUT_DATE,
CASE
WHEN (OUT_DATE <= '2022-05-01') THEN '출고완료'
WHEN (OUT_DATE > '2022-05-01') THEN '출고대기'
ELSE '출고미정'
END 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_ID ASC;
이런식이 되는데
위 SELECT절을 보면 알겠지만 OUT_DATE의 날짜 형식을 바꿔 주었다.
그냥 OUT_DATE를 적어주면 프로그래머스에서 지정한 날짜 형식과 달라 정답처리를 안해주게 된다.
따라서 이 문제의 주의사항은 바로 출력을 날짜형식에 맞추어 출력하는 것이다.
'코딩테스트' 카테고리의 다른 글
프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 (2) | 2023.09.04 |
---|---|
프로그래머스 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.09.04 |
프로그래머스 카테고리 별 도서 판매량 집계하기 (0) | 2023.09.03 |
프로그래머스 오랜 기간 보호한 동물(2) (0) | 2023.09.02 |
프로그래머스 있었는데요 없었습니다 (0) | 2023.09.02 |