質問編集履歴

3

一部記述ミスがあったので修正しました

2021/02/05 12:38

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -164,7 +164,7 @@
164
164
 
165
165
  `YOSOKU_SURYOU ` int(8) NOT NULL COMMENT '予測数量',
166
166
 
167
- PRIMARY KEY (`STOCK_ID`)
167
+ PRIMARY KEY (`ITEM_ID`)
168
168
 
169
169
  )
170
170
 

2

CREATE TABLE、INSERT文を追加しました。ネーミングをヘボン式に修正しました。

2021/02/05 12:38

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -4,14 +4,36 @@
4
4
 
5
5
  商品の発注を行っており、
6
6
 
7
- 想定数量(YOSOKU_SURYOU)が0以下の商品と、
7
+ 予測数量(YOSOKU_SURYOU)が0以下の商品と、
8
-
8
+
9
- 現在すでに発注をかけている商品の数量(TOTAL_HATYUU_SURYOU)を比較して
9
+ 現在すでに発注をかけている商品の数量(TOTAL_HATCHU_SURYOU)を比較して
10
10
 
11
11
  追加で発注が必要なアイテムを出力したいです。
12
12
 
13
13
 
14
14
 
15
+ 「TOTAL_HATCHU_SURYOU」は現在発注をかけている数量となりますので
16
+
17
+ マイナスケースになることはありません。
18
+
19
+
20
+
21
+ 予測数量(YOSOKU_SURYOU)は、
22
+
23
+ ある一定の時期までに、在庫として残るアイテム数の予測であり、
24
+
25
+ 0またはマイナスの場合は追加発注が必要なアイテムということになります。
26
+
27
+
28
+
29
+ 追加発注が必要なアイテムの中でも、
30
+
31
+ 現在すでに発注をかけている商品の数量(TOTAL_HATCHU_SURYOU)で
32
+
33
+ 足りるかどうかを確認したいです。
34
+
35
+
36
+
15
37
 
16
38
 
17
39
  ### 発生している問題・エラーメッセージ
@@ -26,13 +48,11 @@
26
48
 
27
49
 
28
50
 
29
- (2)の「YOSOKU_SURYOU」
51
+ (2)の「YOSOKU_SURYOU」
30
-
52
+
31
- (1)の「TOTAL_HATYUU_SURYOU」よりも【少ない】
53
+ (1)の「TOTAL_HATCHU_SURYOU」を足した時に
32
-
54
+
33
- ITEM_IDを出力したいです。
55
+ 【0またはマイナスになる】ITEM_IDを出力したいです。
34
-
35
- ※それぞれのテーブルのITEM_IDはPRIMARY KEYとなります。
36
56
 
37
57
 
38
58
 
@@ -40,6 +60,18 @@
40
60
 
41
61
  どのように記述すれば良いかご教示いただきたいです。
42
62
 
63
+
64
+
65
+ 例)
66
+
67
+ 予測数量(YOSOKU_SURYOU)が-20で、
68
+
69
+ 発注数量(TOTAL_HATCHU_SURYOU)が5の場合は、
70
+
71
+ 発注数量が15個足りないので追加発注が必要
72
+
73
+ 該当のITEM_IDをSELECT結果に出力したい
74
+
43
75
  ```
44
76
 
45
77
 
@@ -54,21 +86,17 @@
54
86
 
55
87
  SELECT
56
88
 
57
- ITEM_ID,
89
+ ITEM_HATCHU.ITEM_ID,
58
-
90
+
59
- SUM(HATYUU_SURYOU) as TOTAL_HATYUU_SURYOU
91
+ SUM(HATCHU_SURYOU) as TOTAL_HATCHU_SURYOU
60
92
 
61
93
  FROM
62
94
 
63
- ITEM_HATYUU
95
+ ITEM_HATCHU
64
-
65
- where
66
-
67
- HATYUU_KANRYOU_FLG = 0
68
96
 
69
97
  GROUP BY
70
98
 
71
- ITEM_HATYUU.ITEM_ID;
99
+ ITEM_HATCHU.ITEM_ID;
72
100
 
73
101
 
74
102
 
@@ -80,16 +108,112 @@
80
108
 
81
109
  FROM
82
110
 
83
- ITEM_INFO AS INFO
111
+ ITEM_INFO
84
-
112
+
85
- INNER JOIN ITEM_YOSOKU AS YOSOKU ON
113
+ INNER JOIN ITEM_YOSOKU ON
86
-
114
+
87
- INFO.ITEM_ID = YOSOKU.ITEM_ID AND
115
+ ITEM_INFO.ITEM_ID = ITEM_YOSOKU.ITEM_ID AND
88
-
116
+
89
- YOSOKU.YOSOKU_SURYOU <= 0
117
+ ITEM_YOSOKU.YOSOKU_SURYOU <= 0
90
118
 
91
119
  ORDER BY
92
120
 
93
121
  INFO.ITEM_ID;
94
122
 
123
+
124
+
125
+
126
+
127
+
128
+
129
+ 追記【確認用 CREATE TABLE】------------
130
+
131
+
132
+
133
+ CREATE TABLE `ITEM_HATCHU` (
134
+
135
+ `ITEM_ID` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'アイテムID',
136
+
137
+  `HATCHU_ID` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT '発注ID',
138
+
139
+ `HATCHU_SURYOU` int(8) NOT NULL COMMENT '発注数量',
140
+
141
+ PRIMARY KEY (`HATCHU_ID`),
142
+
143
+ KEY `ITEM_ID` (`ITEM_ID`)
144
+
145
+ )
146
+
147
+
148
+
149
+ CREATE TABLE `ITEM_INFO` (
150
+
151
+ `ITEM_ID` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'アイテムID',
152
+
153
+ `ITEM_NAME` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'アイテムID',
154
+
155
+ PRIMARY KEY (`ITEM_ID`)
156
+
157
+ )
158
+
159
+
160
+
161
+ CREATE TABLE `ITEM_YOSOKU` (
162
+
163
+ `ITEM_ID` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'アイテムID',
164
+
165
+ `YOSOKU_SURYOU ` int(8) NOT NULL COMMENT '予測数量',
166
+
167
+ PRIMARY KEY (`STOCK_ID`)
168
+
169
+ )
170
+
171
+
172
+
173
+ 追記【確認用 INSERT文】------------
174
+
175
+
176
+
177
+ INSERT INTO `ITEM_YOSOKU` (`ITEM_ID`, `YOSOKU_SURYOU`) VALUES ('001','-20');
178
+
179
+ INSERT INTO `ITEM_YOSOKU` (`ITEM_ID`, `YOSOKU_SURYOU`) VALUES ('002','-20');
180
+
181
+ INSERT INTO `ITEM_YOSOKU` (`ITEM_ID`, `YOSOKU_SURYOU`) VALUES ('003','-20');
182
+
183
+ INSERT INTO `ITEM_YOSOKU` (`ITEM_ID`, `YOSOKU_SURYOU`) VALUES ('004','-20');
184
+
185
+ INSERT INTO `ITEM_YOSOKU` (`ITEM_ID`, `YOSOKU_SURYOU`) VALUES ('005','-20');
186
+
187
+
188
+
189
+ INSERT INTO `ITEM_INFO` (`ITEM_ID`, `ITEM_NAME`) VALUES ('001','アイテムA');
190
+
191
+ INSERT INTO `ITEM_INFO` (`ITEM_ID`, `ITEM_NAME`) VALUES ('002','アイテムB');
192
+
193
+ INSERT INTO `ITEM_INFO` (`ITEM_ID`, `ITEM_NAME`) VALUES ('003','アイテムC');
194
+
195
+ INSERT INTO `ITEM_INFO` (`ITEM_ID`, `ITEM_NAME`) VALUES ('004','アイテムD');
196
+
197
+ INSERT INTO `ITEM_INFO` (`ITEM_ID`, `ITEM_NAME`) VALUES ('005','アイテムE');
198
+
199
+
200
+
201
+ INSERT INTO `ITEM_HATCHU` (`ITEM_ID`, `HATCHU_ID`, `HATCHU_SURYOU` ) VALUES ('001','HA001','30');
202
+
203
+ INSERT INTO `ITEM_HATCHU` (`ITEM_ID`, `HATCHU_ID`, `HATCHU_SURYOU` ) VALUES ('002','HA002','30');
204
+
205
+ INSERT INTO `ITEM_HATCHU` (`ITEM_ID`, `HATCHU_ID`, `HATCHU_SURYOU` ) VALUES ('003','HA003','30');
206
+
207
+ INSERT INTO `ITEM_HATCHU` (`ITEM_ID`, `HATCHU_ID`, `HATCHU_SURYOU` ) VALUES ('004','HA004','30');
208
+
209
+ INSERT INTO `ITEM_HATCHU` (`ITEM_ID`, `HATCHU_ID`, `HATCHU_SURYOU` ) VALUES ('005','HA005','5');
210
+
211
+
212
+
213
+ →ITEM_ID「005」は、YOSOKU_SURYOUが「-20」に対して、HATCHU_SURYOUが「5」なので
214
+
215
+ 追加発注が必要=SELECT結果にITEM_IDを出力したい
216
+
217
+
218
+
95
219
  ```

1

初心者アイコンを追加させていただきました。

2021/02/05 12:34

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  上記を1つのSQLで出力する方法が分からず、
40
40
 
41
- どのように記述すれば良いか教えていただきたいです。
41
+ どのように記述すれば良いかいただきたいです。
42
42
 
43
43
  ```
44
44