출처
문제
FOOD_ORDER 테이블에서 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요. 출고여부는 5월 1일까지 출고완료로 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요.
문제에 대한 해석
5월 1일을 기준으로 출고여부에 대한 세그먼트작성
풀이(MYSQL)
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 '출고완료'
else '출고대기' end as "출고여부"
from food_order
order by order_id
작동순서
💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환
- FROM 절: food_order테이블 에서
- SELECT 절: order_id, product_id와 out_date를 연-월-일에 맞추어 문자화하여 조회할 때 out_date 컬럼에서 데이터가 없다면 출고미장, 2022-05-01까지 출거되었으면 출고완료 아니면 출고대기로 변경하라
- ORDER BY 절: order_id의 오름차순
다른사람 풀이
SELECT order_id, product_id, DATE_FORMAT(out_date, '%Y-%m-%d'),
CASE
WHEN out_date IS NULL THEN '출고미정'
WHEN DATEDIFF('2022-05-01', out_date) >= 0 THEN '출고완료'
WHEN DATEDIFF('2022-05-01', out_date) < 0 THEN '출고대기'
END AS 출고여부
FROM food_order
ORDER BY 1;
배운점
- 날짜를 작성할 때는 ''로 작성해야 인식된다. 증 숫자빼고 모든 데이터는 ''필요
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] 루시와 엘라 찾기/성분으로 구분한 아이스크림 총 주문량 (0) | 2024.01.09 |
---|---|
[문제풀이] SQL개인과제(초급/중급) (0) | 2024.01.08 |
[문제풀이] 조건에 맞는 도서와 저자 리스트 출력 (1) | 2024.01.08 |
[문제풀이] 보호소에서 중성화된 동물 (1) | 2024.01.08 |
[문제풀이] 오랜 기간 보호한 동물(2)-datediff (0) | 2024.01.05 |