✨APS (Algorithm Problem Solving)/프로그래머스 SQL

[프로그래머스 SQL] 조건별로 분류하여 주문상태 출력하기 / 오라클(Oracle)

Nyan cat 2022. 10. 18. 10:30

 

 

📜 문제 설명

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


Column name Type Nullable
ORDER_ID VARCHAR(10) FALSE
PRODUCT_ID VARCHAR(5) FALSE
AMOUNT NUMBER FALSE
PRODUCE_DATE DATE TRUE
IN_DATE DATE TRUE
OUT_DATE DATE TRUE
FACTORY_ID VARCHAR(10) FALSE
WAREHOUSE_ID VARCHAR(10) FALSE

 

❓ 문제

FOOD_ORDER 테이블에서 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요.

출고여부는 5월 1일까지 출고완료로 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요.

 

🔗 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/131113

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

💡 문제 풀이

CASE문을 써서 풀 수 있는 문제

- out_date를 5월 1일 날짜와 비교

SELECT
 order_id, product_id, TO_CHAR(out_date, 'YYYY-MM-DD') AS out_date, 
 CASE WHEN out_date > TO_DATE('20220501', 'YYYYMMDD') THEN '출고대기' 
 WHEN out_date <= TO_DATE('20220501', 'YYYYMMDD') THEN '출고완료'
 ELSE '출고미정' END AS 출고여부
FROM food_order
ORDER BY order_id
 
반응형