inblog logo
|
DailyCoding
    CodingTestSQL

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

    박은서's avatar
    박은서
    Feb 20, 2026
    54. 조건별로 분류하여 주문상태 출력하기
    Contents
    1. 문제2. 풀이
    2026.02.20(FRI)_54일차

    1. 문제

    문제 설명

    다음은 식품공장의 주문정보를 담은 FOOD_ORDER 테이블입니다. FOOD_ORDER 테이블은 다음과 같으며 ORDER_ID, PRODUCT_ID, AMOUNT, PRODUCE_DATE, IN_DATEOUT_DATEFACTORY_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 테이블에서 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
    출고대기

    2. 풀이

    SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE,'%Y-%m-%d'), CASE WHEN OUT_DATE IS NULL THEN '출고미정' WHEN OUT_DATE <= '2022-05-01' THEN '출고완료' WHEN OUT_DATE > '2022-05-01' THEN '출고대기' END '출고여부' FROM FOOD_ORDER ORDER BY ORDER_ID;
    ORDER_ID
    PRODUCT_ID
    OUT_DATE
    출고여부
    OD00000036
    P0071
    2022-03-16
    출고완료
    OD00000037
    P0072
    2022-03-31
    출고완료
    OD00000038
    P0073
    2022-03-31
    출고완료
    OD00000039
    P0074
    2022-03-31
    출고완료
    OD00000040
    P0075
    2022-03-26
    출고완료
    OD00000041
    P0081
    ㅤ
    출고미정
    OD00000042
    P0082
    2022-03-20
    출고완료
    OD00000043
    P0083
    2022-05-01
    출고완료
    OD00000044
    P0084
    2022-04-30
    출고완료
    OD00000045
    P0085
    2022-05-01
    출고완료
    OD00000046
    P0091
    2022-04-29
    출고완료
    OD00000047
    P0092
    2022-05-01
    출고완료
    OD00000048
    P0093
    2022-05-01
    출고완료
    OD00000049
    P0094
    2022-05-01
    출고완료
    OD00000050
    P0095
    2022-05-12
    출고대기
    OD00000051
    P0002
    2022-04-21
    출고완료
    OD00000052
    P0003
    2022-04-27
    출고완료
    OD00000053
    P0005
    2022-05-01
    출고완료
    OD00000054
    P0006
    ㅤ
    출고미정
    OD00000055
    P0008
    2022-05-11
    출고대기
    OD00000056
    P0012
    2022-04-25
    출고완료
    OD00000057
    P0014
    2022-05-01
    출고완료
    OD00000058
    P0017
    2022-05-28
    출고대기
    OD00000059
    P0017
    2022-05-30
    출고대기
    OD00000060
    P0019
    2022-06-08
    출고대기
    OD00000061
    P0022
    2022-05-22
    출고대기
    OD00000062
    P0022
    2022-05-29
    출고대기
    OD00000063
    P0023
    2022-05-29
    출고대기
    OD00000064
    P0024
    2022-05-29
    출고대기
    OD00000065
    P0025
    2022-06-01
    출고대기
    Share article
    Contents
    1. 문제2. 풀이

    DailyCoding

    RSS·Powered by Inblog