문제
FOOD_ORDER 테이블에서 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL작성
5월 1일까지 출고완료, 이 후 날짜는 출고 대기, 미정이면 출고미정
결과는 주문 ID를 기준으로 오름차순 정렬해주세요.
출력예시 (출처 : 프로그래머스)
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 | 출고대기 |
위의 예시만 보고 OUT_DATE 포맷도 'YYYY/MM/DD' 로 맞췄더니 틀렸다고나왔다;
OUT_DATE는 그냥 출력하면된다. 출고여부는 CASE문으로 작성했다.
풀이
SELECT ORDER_ID
, PRODUCT_ID
, OUT_DATE
, CASE WHEN TO_CHAR(OUT_DATE,'YYYYMMDD') <= '20220501' THEN '출고완료'
WHEN TO_CHAR(OUT_DATE,'YYYYMMDD') > '20220501' THEN '출고대기'
ELSE '출고미정' END AS 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_ID
반응형