본문 바로가기

코딩테스트_SQL

250410 프로그래머스 조건별로 분류하여 주문상태 출력하기

[문제]

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

 

[풀이]

1) ORDER_ID, PRODUCT_ID, OUT_DATE, 출고여부 조회

2) 현재 OUT_DATE는 시간까지 다 나오는 형식이므로, 예시 출력에 맞게 형식 바꿔주기 - DATE_FORMAT()

3) 출고여부 - OUT_DATE가 2022년 5월 1일 포함 이전 날짜면 '출고완료', 이후면 '출고대기', 값이 NULL이면 출고미정으로 생성

4) 주문ID 기준으로 오름차순 정렬하기

 

[정답]

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