코딩 테스트/SQL

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

susinlee 2024. 12. 11. 10:24

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


[단계별 풀이]
1. CASE WHEN 문으로 출고일자가 5월 1일보다 같거나 작으면 출고완료, 이후는 출고대기, NULL이면 출고미정

2. 주문ID, 제품ID, 출고일자, 출고여부를 선택

3. 주문ID 기준으로 오름차순 정렬


[정답]

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