Skip to content

Commit 9e22975

Browse files
committed
[level 3] Title: 조건별로 분류하여 주문상태 출력하기, Time: 0.00 ms, Memory: 0.0 MB -BaekjoonHub
1 parent 3e160c0 commit 9e22975

File tree

2 files changed

+214
-0
lines changed

2 files changed

+214
-0
lines changed
Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
# [level 3] 조건별로 분류하여 주문상태 출력하기 - 131113
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/131113)
4+
5+
### 성능 요약
6+
7+
메모리: 0.0 MB, 시간: 0.00 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > String, Date
12+
13+
### 채점결과
14+
15+
Empty
16+
17+
### 제출 일자
18+
19+
2025년 11월 10일 17:37:14
20+
21+
### 문제 설명
22+
23+
<p>다음은 식품공장의 주문정보를 담은 <code>FOOD_ORDER</code> 테이블입니다. <code>FOOD_ORDER</code> 테이블은 다음과 같으며 <code>ORDER_ID</code>, <code>PRODUCT_ID</code>, <code>AMOUNT</code>, <code>PRODUCE_DATE</code>, <code>IN_DATE</code>,<code>OUT_DATE</code>,<code>FACTORY_ID</code>, <code>WAREHOUSE_ID</code>는 각각 주문 ID, 제품 ID, 주문양, 생산일자, 입고일자, 출고일자, 공장 ID, 창고 ID를 의미합니다.</p>
24+
<table class="table">
25+
<thead><tr>
26+
<th>Column name</th>
27+
<th>Type</th>
28+
<th>Nullable</th>
29+
</tr>
30+
</thead>
31+
<tbody><tr>
32+
<td>ORDER_ID</td>
33+
<td>VARCHAR(10)</td>
34+
<td>FALSE</td>
35+
</tr>
36+
<tr>
37+
<td>PRODUCT_ID</td>
38+
<td>VARCHAR(5)</td>
39+
<td>FALSE</td>
40+
</tr>
41+
<tr>
42+
<td>AMOUNT</td>
43+
<td>NUMBER</td>
44+
<td>FALSE</td>
45+
</tr>
46+
<tr>
47+
<td>PRODUCE_DATE</td>
48+
<td>DATE</td>
49+
<td>TRUE</td>
50+
</tr>
51+
<tr>
52+
<td>IN_DATE</td>
53+
<td>DATE</td>
54+
<td>TRUE</td>
55+
</tr>
56+
<tr>
57+
<td>OUT_DATE</td>
58+
<td>DATE</td>
59+
<td>TRUE</td>
60+
</tr>
61+
<tr>
62+
<td>FACTORY_ID</td>
63+
<td>VARCHAR(10)</td>
64+
<td>FALSE</td>
65+
</tr>
66+
<tr>
67+
<td>WAREHOUSE_ID</td>
68+
<td>VARCHAR(10)</td>
69+
<td>FALSE</td>
70+
</tr>
71+
</tbody>
72+
</table>
73+
<hr>
74+
75+
<h5>문제</h5>
76+
77+
<p><code>FOOD_ORDER</code> 테이블에서 2022년 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요. 출고여부는 2022년 5월 1일까지 출고완료로 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요.</p>
78+
79+
<hr>
80+
81+
<h5>예시</h5>
82+
83+
<p><code>FOOD_ORDER</code> 테이블이 다음과 같을 때</p>
84+
<table class="table">
85+
<thead><tr>
86+
<th>ORDER_ID</th>
87+
<th>PRODUCT_ID</th>
88+
<th>AMOUNT</th>
89+
<th>PRODUCE_DATE</th>
90+
<th>IN_DATE</th>
91+
<th>OUT_DATE</th>
92+
<th>FACTORY_ID</th>
93+
<th>WAREHOUSE_ID</th>
94+
</tr>
95+
</thead>
96+
<tbody><tr>
97+
<td>OD00000051</td>
98+
<td>P0002</td>
99+
<td>4000</td>
100+
<td>2022-04-01</td>
101+
<td>2022-04-21</td>
102+
<td>2022-04-21</td>
103+
<td>FT19970003</td>
104+
<td>WH0005</td>
105+
</tr>
106+
<tr>
107+
<td>OD00000052</td>
108+
<td>P0003</td>
109+
<td>2500</td>
110+
<td>2022-04-10</td>
111+
<td>2022-04-27</td>
112+
<td>2022-04-27</td>
113+
<td>FT19970003</td>
114+
<td>WH0006</td>
115+
</tr>
116+
<tr>
117+
<td>OD00000053</td>
118+
<td>P0005</td>
119+
<td>6200</td>
120+
<td>2022-04-15</td>
121+
<td>2022-04-30</td>
122+
<td>2022-05-01</td>
123+
<td>FT19940003</td>
124+
<td>WH0003</td>
125+
</tr>
126+
<tr>
127+
<td>OD00000054</td>
128+
<td>P0006</td>
129+
<td>1000</td>
130+
<td>2022-04-21</td>
131+
<td>2022-04-30</td>
132+
<td>NULL</td>
133+
<td>FT19940003</td>
134+
<td>WH0009</td>
135+
</tr>
136+
<tr>
137+
<td>OD00000055</td>
138+
<td>P0008</td>
139+
<td>1500</td>
140+
<td>2022-04-25</td>
141+
<td>2022-05-11</td>
142+
<td>2022-05-11</td>
143+
<td>FT19980003</td>
144+
<td>WH0009</td>
145+
</tr>
146+
</tbody>
147+
</table>
148+
<p>SQL을 실행하면 다음과 같이 출력되어야 합니다.</p>
149+
<table class="table">
150+
<thead><tr>
151+
<th>ORDER_ID</th>
152+
<th>PRODUCT_ID</th>
153+
<th>OUT_DATE</th>
154+
<th>출고여부</th>
155+
</tr>
156+
</thead>
157+
<tbody><tr>
158+
<td>OD00000051</td>
159+
<td>P0002</td>
160+
<td>2022-04-21</td>
161+
<td>출고완료</td>
162+
</tr>
163+
<tr>
164+
<td>OD00000052</td>
165+
<td>P0003</td>
166+
<td>2022-04-27</td>
167+
<td>출고완료</td>
168+
</tr>
169+
<tr>
170+
<td>OD00000053</td>
171+
<td>P0005</td>
172+
<td>2022-05-01</td>
173+
<td>출고완료</td>
174+
</tr>
175+
<tr>
176+
<td>OD00000054</td>
177+
<td>P0006</td>
178+
<td></td>
179+
<td>출고미정</td>
180+
</tr>
181+
<tr>
182+
<td>OD00000055</td>
183+
<td>P0008</td>
184+
<td>2022-05-11</td>
185+
<td>출고대기</td>
186+
</tr>
187+
</tbody>
188+
</table>
189+
190+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
-- 코드를 입력하세요
2+
SELECT
3+
ORDER_ID,
4+
PRODUCT_ID,
5+
DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE,
6+
CASE
7+
WHEN OUT_DATE IS NULL THEN '출고미정'
8+
WHEN OUT_DATE <='2022-05-01' THEN '출고완료'
9+
ELSE '출고대기'
10+
END AS '출고여부'
11+
FROM FOOD_ORDER
12+
ORDER BY ORDER_ID;
13+
14+
# SELECT order_id
15+
# , product_id
16+
# , TO_CHAR(out_date, 'YYYY-MM-DD') AS out_date
17+
# , CASE
18+
# WHEN out_date <= DATE '2022-05-01'THEN '출고완료'
19+
# WHEN out_date > DATE '2022-05-01' THEN '출고대기'
20+
# ELSE '출고미정'
21+
# END AS 출고여부
22+
# -- 기준일보다 작다면 출고완료, 크다면 출고대기, 그 외는 출고미정
23+
# FROM food_order
24+
# ORDER BY order_id ASC;

0 commit comments

Comments
 (0)