728x90
반응형
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/131113문제 요약
주어진 FOOD_ORDER 테이블에서 2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 그리고 출고 여부를 조회하는 SQL 쿼리를 작성해야 합니다.
- 출고 여부는 출고일(OUT_DATE)이 2022년 5월 1일 이전이면 "출고완료", 그 이후면 "출고대기", 출고일이 미정이면 "출고미정"으로 구분합니다.
- 결과는 주문 ID를 기준으로 오름차순 정렬해야 합니다.
풀이 방법
- SELECT 문에서 주문 ID, 제품 ID, 출고일자, 출고 여부를 선택합니다.
- 출고 여부는 CASE문을 사용하여 OUT_DATE 값에 따라 결정합니다.
- OUT_DATE가 2022-05-01 이전이거나 같으면 "출고완료"로 표시.
- OUT_DATE가 NULL이면 "출고미정"으로 표시.
- 그 외의 경우는 "출고대기"로 표시.
- ORDER BY 절을 사용하여 ORDER_ID를 기준으로 오름차순으로 정렬합니다.
정답 코드
-- 코드를 입력하세요
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 is null then '출고미정'
else '출고대기'
end as '출고여부'
from food_order
order by order_id asc
새롭게 배운 내용
- CASE 문: 조건에 따라 다른 값을 반환하여 "출고 여부"를 결정하는 데 사용했습니다.
- DATE_FORMAT 함수: 날짜 형식을 "YYYY-MM-DD" 형식으로 맞추어 출력하기 위해 사용했습니다.
728x90
반응형
'코딩테스트 > SQL' 카테고리의 다른 글
[MySQL] 헤비유저가 소유한 장소 (0) | 2024.12.23 |
---|---|
[MySQL] - 오랜 기간 보호한 동물(1) (0) | 2024.10.26 |
[MySQL] 카테고리 별 도서 판매량 집계하기 (1) | 2024.10.25 |
[MySQL] - 있었는데요 없었습니다 (0) | 2024.10.25 |
[MySQL] - 오랜 기간 보호한 동물(2) (2) | 2024.10.18 |