質問編集履歴
3
一部記述ミスがあったので修正しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -81,7 +81,7 @@
|
|
81
81
|
CREATE TABLE `ITEM_YOSOKU` (
|
82
82
|
`ITEM_ID` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'アイテムID',
|
83
83
|
`YOSOKU_SURYOU ` int(8) NOT NULL COMMENT '予測数量',
|
84
|
-
PRIMARY KEY (`
|
84
|
+
PRIMARY KEY (`ITEM_ID`)
|
85
85
|
)
|
86
86
|
|
87
87
|
追記【確認用 INSERT文】------------
|
2
CREATE TABLE、INSERT文を追加しました。ネーミングをヘボン式に修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,24 +1,40 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
商品の発注を行っており、
|
4
|
-
|
4
|
+
予測数量(YOSOKU_SURYOU)が0以下の商品と、
|
5
|
-
現在すでに発注をかけている商品の数量(
|
5
|
+
現在すでに発注をかけている商品の数量(TOTAL_HATCHU_SURYOU)を比較して
|
6
6
|
追加で発注が必要なアイテムを出力したいです。
|
7
7
|
|
8
|
+
「TOTAL_HATCHU_SURYOU」は現在発注をかけている数量となりますので
|
9
|
+
マイナスケースになることはありません。
|
8
10
|
|
11
|
+
予測数量(YOSOKU_SURYOU)は、
|
12
|
+
ある一定の時期までに、在庫として残るアイテム数の予測であり、
|
13
|
+
0またはマイナスの場合は追加発注が必要なアイテムということになります。
|
14
|
+
|
15
|
+
追加発注が必要なアイテムの中でも、
|
16
|
+
現在すでに発注をかけている商品の数量(TOTAL_HATCHU_SURYOU)で
|
17
|
+
足りるかどうかを確認したいです。
|
18
|
+
|
19
|
+
|
9
20
|
### 発生している問題・エラーメッセージ
|
10
21
|
|
11
22
|
```
|
12
23
|
(1)のSQLで出力したITEM_IDと
|
13
24
|
(2)のSQLで出力したITEM_IDが一致していて
|
14
25
|
|
15
|
-
(2)の「YOSOKU_SURYOU」
|
26
|
+
(2)の「YOSOKU_SURYOU」と
|
16
|
-
(1)の「
|
27
|
+
(1)の「TOTAL_HATCHU_SURYOU」を足した時に
|
17
|
-
ITEM_IDを出力したいです。
|
28
|
+
【0またはマイナスになる】ITEM_IDを出力したいです。
|
18
|
-
※それぞれのテーブルのITEM_IDはPRIMARY KEYとなります。
|
19
29
|
|
20
30
|
上記を1つのSQLで出力する方法が分からず、
|
21
31
|
どのように記述すれば良いかご教示いただきたいです。
|
32
|
+
|
33
|
+
例)
|
34
|
+
予測数量(YOSOKU_SURYOU)が-20で、
|
35
|
+
発注数量(TOTAL_HATCHU_SURYOU)が5の場合は、
|
36
|
+
発注数量が15個足りないので追加発注が必要
|
37
|
+
該当のITEM_IDをSELECT結果に出力したい
|
22
38
|
```
|
23
39
|
|
24
40
|
### 該当のソースコード
|
@@ -26,23 +42,69 @@
|
|
26
42
|
```Mysql
|
27
43
|
(1)
|
28
44
|
SELECT
|
29
|
-
ITEM_ID,
|
45
|
+
ITEM_HATCHU.ITEM_ID,
|
30
|
-
SUM(
|
46
|
+
SUM(HATCHU_SURYOU) as TOTAL_HATCHU_SURYOU
|
31
47
|
FROM
|
32
|
-
|
48
|
+
ITEM_HATCHU
|
33
|
-
where
|
34
|
-
HATYUU_KANRYOU_FLG = 0
|
35
49
|
GROUP BY
|
36
|
-
|
50
|
+
ITEM_HATCHU.ITEM_ID;
|
37
51
|
|
38
52
|
(2)
|
39
53
|
SELECT
|
40
54
|
INFO.ITEM_ID
|
41
55
|
FROM
|
42
|
-
ITEM_INFO
|
56
|
+
ITEM_INFO
|
43
|
-
INNER JOIN ITEM_YOSOKU
|
57
|
+
INNER JOIN ITEM_YOSOKU ON
|
44
|
-
|
58
|
+
ITEM_INFO.ITEM_ID = ITEM_YOSOKU.ITEM_ID AND
|
45
|
-
|
59
|
+
ITEM_YOSOKU.YOSOKU_SURYOU <= 0
|
46
60
|
ORDER BY
|
47
61
|
INFO.ITEM_ID;
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
追記【確認用 CREATE TABLE】------------
|
66
|
+
|
67
|
+
CREATE TABLE `ITEM_HATCHU` (
|
68
|
+
`ITEM_ID` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'アイテムID',
|
69
|
+
`HATCHU_ID` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT '発注ID',
|
70
|
+
`HATCHU_SURYOU` int(8) NOT NULL COMMENT '発注数量',
|
71
|
+
PRIMARY KEY (`HATCHU_ID`),
|
72
|
+
KEY `ITEM_ID` (`ITEM_ID`)
|
73
|
+
)
|
74
|
+
|
75
|
+
CREATE TABLE `ITEM_INFO` (
|
76
|
+
`ITEM_ID` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'アイテムID',
|
77
|
+
`ITEM_NAME` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'アイテムID',
|
78
|
+
PRIMARY KEY (`ITEM_ID`)
|
79
|
+
)
|
80
|
+
|
81
|
+
CREATE TABLE `ITEM_YOSOKU` (
|
82
|
+
`ITEM_ID` varchar(10) COLLATE utf8_unicode_ci NOT NULL COMMENT 'アイテムID',
|
83
|
+
`YOSOKU_SURYOU ` int(8) NOT NULL COMMENT '予測数量',
|
84
|
+
PRIMARY KEY (`STOCK_ID`)
|
85
|
+
)
|
86
|
+
|
87
|
+
追記【確認用 INSERT文】------------
|
88
|
+
|
89
|
+
INSERT INTO `ITEM_YOSOKU` (`ITEM_ID`, `YOSOKU_SURYOU`) VALUES ('001','-20');
|
90
|
+
INSERT INTO `ITEM_YOSOKU` (`ITEM_ID`, `YOSOKU_SURYOU`) VALUES ('002','-20');
|
91
|
+
INSERT INTO `ITEM_YOSOKU` (`ITEM_ID`, `YOSOKU_SURYOU`) VALUES ('003','-20');
|
92
|
+
INSERT INTO `ITEM_YOSOKU` (`ITEM_ID`, `YOSOKU_SURYOU`) VALUES ('004','-20');
|
93
|
+
INSERT INTO `ITEM_YOSOKU` (`ITEM_ID`, `YOSOKU_SURYOU`) VALUES ('005','-20');
|
94
|
+
|
95
|
+
INSERT INTO `ITEM_INFO` (`ITEM_ID`, `ITEM_NAME`) VALUES ('001','アイテムA');
|
96
|
+
INSERT INTO `ITEM_INFO` (`ITEM_ID`, `ITEM_NAME`) VALUES ('002','アイテムB');
|
97
|
+
INSERT INTO `ITEM_INFO` (`ITEM_ID`, `ITEM_NAME`) VALUES ('003','アイテムC');
|
98
|
+
INSERT INTO `ITEM_INFO` (`ITEM_ID`, `ITEM_NAME`) VALUES ('004','アイテムD');
|
99
|
+
INSERT INTO `ITEM_INFO` (`ITEM_ID`, `ITEM_NAME`) VALUES ('005','アイテムE');
|
100
|
+
|
101
|
+
INSERT INTO `ITEM_HATCHU` (`ITEM_ID`, `HATCHU_ID`, `HATCHU_SURYOU` ) VALUES ('001','HA001','30');
|
102
|
+
INSERT INTO `ITEM_HATCHU` (`ITEM_ID`, `HATCHU_ID`, `HATCHU_SURYOU` ) VALUES ('002','HA002','30');
|
103
|
+
INSERT INTO `ITEM_HATCHU` (`ITEM_ID`, `HATCHU_ID`, `HATCHU_SURYOU` ) VALUES ('003','HA003','30');
|
104
|
+
INSERT INTO `ITEM_HATCHU` (`ITEM_ID`, `HATCHU_ID`, `HATCHU_SURYOU` ) VALUES ('004','HA004','30');
|
105
|
+
INSERT INTO `ITEM_HATCHU` (`ITEM_ID`, `HATCHU_ID`, `HATCHU_SURYOU` ) VALUES ('005','HA005','5');
|
106
|
+
|
107
|
+
→ITEM_ID「005」は、YOSOKU_SURYOUが「-20」に対して、HATCHU_SURYOUが「5」なので
|
108
|
+
追加発注が必要=SELECT結果にITEM_IDを出力したい
|
109
|
+
|
48
110
|
```
|
1
初心者アイコンを追加させていただきました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
※それぞれのテーブルのITEM_IDはPRIMARY KEYとなります。
|
19
19
|
|
20
20
|
上記を1つのSQLで出力する方法が分からず、
|
21
|
-
どのように記述すれば良いか教
|
21
|
+
どのように記述すれば良いかご教示いただきたいです。
|
22
22
|
```
|
23
23
|
|
24
24
|
### 該当のソースコード
|