[프로그래머스 Lv.3] 조건별로 분류하여 주문상태 출력하기

너구리로소이다·2023년 3월 23일
0

programmers-SQL

목록 보기
49/76
post-thumbnail

코딩테스트 연습 - 조건별로 분류하여 주문상태 출력하기

문제 설명

다음은 식품공장의 주문정보를 담은 FOOD_ORDER 테이블입니다.
FOOD_ORDER 테이블은 다음과 같으며,
ORDER_ID, PRODUCT_ID, AMOUNT, PRODUCE_DATE, IN_DATE,OUT_DATE,FACTORY_ID, WAREHOUSE_ID는 각각 주문 ID, 제품 ID, 주문양, 생산일자, 입고일자, 출고일자, 공장 ID, 창고 ID를 의미합니다.

Column nameTypeNullable
ORDER_IDVARCHAR(10)FALSE
PRODUCT_IDVARCHAR(5)FALSE
AMOUNTNUMBERFALSE
PRODUCE_DATEDATETRUE
IN_DATEDATETRUE
OUT_DATEDATETRUE
FACTORY_IDVARCHAR(10)FALSE
WAREHOUSE_IDVARCHAR(10)FALSE

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

풀이

결과

-- 5월 1일을 기준
-- 주문 ID, 제품 ID, 출고일자, 출고여부를 조회
-- 출고여부는 5월 1일까지 출고완료
-- 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력
-- 주문 ID를 기준으로 오름차순 정렬
SELECT ORDER_ID, PRODUCT_ID, TO_CHAR(OUT_DATE, 'YYYY-MM-DD') AS OUT_DATE, 
    CASE WHEN OUT_DATE IS NULL THEN '출고미정'
        ELSE CASE WHEN OUT_DATE <= TO_DATE('2022-05-01', 'YYYY-MM-DD') THEN '출고완료' 
            ELSE '출고대기'
        END
    END AS "출고여부"
FROM FOOD_ORDER 
ORDER BY ORDER_ID
profile
일단 해보자 뭐든 되겠지 😄

0개의 댓글