2024. 9. 28. 18:00ㆍSQL 고득점 Kit/String, Date
https://school.programmers.co.kr/learn/courses/30/lessons/131113
문제 설명
다음은 식품공장의 주문정보를 담은 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 | |
OUT_DATE | DATE | TRUE |
FACTORY_ID | VARCHAR(10) | FALSE |
WAREHOUSE_ID | VARCHAR(10) | FALSE |
문제
FOOD_ORDER 테이블에서 2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요.
출고여부는 2022년 5월 1일까지 출고완료로 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요.
예시
FOOD_ORDER 테이블이 다음과 같을 때
ORDER_ID | PRODUCT_ID | AMOUNT | PRODUCE_DATE | IN_DATE | OUT_DATE | FACTORY_ID | WAREHOUSE_ID |
OD00000051 | P0002 | 4000 | 2022-04-01 | 2022-04-21 | 2022-04-21 | FT19970003 | WH0005 |
OD00000052 | P0003 | 2500 | 2022-04-10 | 2022-04-27 | 2022-04-27 | FT19970003 | WH0006 |
OD00000053 | P0005 | 6200 | 2022-04-15 | 2022-04-30 | 2022-05-01 | FT19940003 | WH0003 |
OD00000054 | P0006 | 1000 | 2022-04-21 | 2022-04-30 | NULL | FT19940003 | WH0009 |
OD00000055 | P0008 | 1500 | 2022-04-25 | 2022-05-11 | 2022-05-11 | FT19980003 | WH0009 |
SQL을 실행하면 다음과 같이 출력되어야 합니다.
ORDER_ID | PRODUCT_ID | OUT_DATE | 출고여부 |
OD00000051 | P0002 | 2022-04-21 | 출고완료 |
OD00000052 | P0003 | 2022-04-27 | 출고완료 |
OD00000053 | P0005 | 2022-05-01 | 출고완료 |
OD00000054 | P0006 | 출고미정 | |
OD00000055 | P0008 | 2022-05-11 | 출고대기 |
2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회해 출력하는 문제입니다.
2022년 5월 1일보다 출고 날짜가 빠르다면 출고완료를, 늦다면 출고대기를, 없다면 출고미정으로 출력하도록 CASE WHEN 구문을 사용하는 문제입니다. 그리고 OUT_DATE 역시 날짜 포맷을 변경해줘야 하고요.
정답 코드를 작성해보겠습니다.
SELECT ORDER_ID, PRODUCT_ID,
DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE,
CASE
WHEN OUT_DATE <= '2022-05-01' THEN '출고완료'
WHEN OUT_DATE > '2022-05-01' THEN '출고대기'
WHEN OUT_DATE IS NULL THEN '출고미정'
END AS "출고여부"
FROM FOOD_ORDER
ORDER BY ORDER_ID ASC;
3가지 조건에 따라서 출고완료, 출고대기, 출고미정을 분류하도록 설정하면 됩니다.
'SQL 고득점 Kit > String, Date' 카테고리의 다른 글
[String, Date] 조건에 맞는 사용자 정보 조회하기 (1) | 2024.09.30 |
---|---|
[String, Date] 대여 기록이 존재하는 자동차 리스트 구하기 (0) | 2024.09.29 |
[String, Date] 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2024.09.27 |
[String, Date] 특정 옵션이 포함된 자동차 리스트 구하기 (2) | 2024.09.26 |
[String, Date] 조건에 부합하는 중고거래 상태 조회하기 (1) | 2024.09.25 |