質問編集履歴
2
Markdown記述を使用。
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
|
5
5
|
【テーブル】
|
6
6
|
SAGYORIREKI(主キー:SEIHIN, SAGYODATE, SEQ)
|
7
|
+
```lang-Oracle SQL
|
7
8
|
|
8
9
|
CREATE TABLE SAGYORIREKI
|
9
10
|
(
|
@@ -24,6 +25,7 @@
|
|
24
25
|
INSERT INTO SAGYORIREKI VALUES ('CCC', '2018/01/07', 1, '洗浄');
|
25
26
|
INSERT INTO SAGYORIREKI VALUES ('CCC', '2018/10/14', 1, 'パーツ交換');
|
26
27
|
INSERT INTO SAGYORIREKI VALUES ('CCC', '2019/02/10', 1, 'パーツ交換');
|
28
|
+
```
|
27
29
|
|
28
30
|
【出力イメージ】
|
29
31
|
2017/06/01~2018/11/30間の製品ごとの作業履歴とその1つ前の作業履歴を表示したい。
|
1
Orlofskyさんの助言をいただき、1)テーブル内容をCREATE TABLE文、INSERT文に修正しました。2)Markdown[コードの表示]にて記載しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,22 +5,26 @@
|
|
5
5
|
【テーブル】
|
6
6
|
SAGYORIREKI(主キー:SEIHIN, SAGYODATE, SEQ)
|
7
7
|
|
8
|
-
|
8
|
+
CREATE TABLE SAGYORIREKI
|
9
|
+
(
|
9
|
-
|
10
|
+
SEIHIN VARCHAR2(30) NOT NULL,
|
10
|
-
|
11
|
+
SAGYODATE DATE NOT NULL,
|
11
|
-
AAA , 2017/09/20, 1 , 洗浄
|
12
|
-
|
12
|
+
SEQ NUMBER(03) DEFAULT 0 NOT NULL,
|
13
|
-
|
13
|
+
NAIYO VARCHAR2(100) DEFAULT NULL ,
|
14
|
+
CONSTRAINT SAGYORIREKI_PKEY PRIMARY KEY (SEIHIN, SAGYODATE, SEQ) USING INDEX TABLESPACE INDEX01
|
15
|
+
) TABLESPACE USERS;
|
14
16
|
|
17
|
+
INSERT INTO SAGYORIREKI VALUES ('AAA', '2016/10/01', 1, '洗浄');
|
18
|
+
INSERT INTO SAGYORIREKI VALUES ('AAA', '2017/09/20', 1, '洗浄');
|
19
|
+
INSERT INTO SAGYORIREKI VALUES ('AAA', '2017/09/20', 2, 'パーツ交換');
|
20
|
+
INSERT INTO SAGYORIREKI VALUES ('AAA', '2018/05/06', 1, 'オーバーホール');
|
15
|
-
BBB
|
21
|
+
INSERT INTO SAGYORIREKI VALUES ('BBB', '2017/06/05', 1, '洗浄');
|
16
|
-
BBB
|
22
|
+
INSERT INTO SAGYORIREKI VALUES ('BBB', '2017/06/05', 2, '補修');
|
17
|
-
BBB
|
23
|
+
INSERT INTO SAGYORIREKI VALUES ('BBB', '2018/12/22', 1, '洗浄');
|
24
|
+
INSERT INTO SAGYORIREKI VALUES ('CCC', '2018/01/07', 1, '洗浄');
|
25
|
+
INSERT INTO SAGYORIREKI VALUES ('CCC', '2018/10/14', 1, 'パーツ交換');
|
26
|
+
INSERT INTO SAGYORIREKI VALUES ('CCC', '2019/02/10', 1, 'パーツ交換');
|
18
27
|
|
19
|
-
CCC , 2018/01/07, 1 , 洗浄
|
20
|
-
CCC , 2018/10/14, 1 , パーツ交換
|
21
|
-
CCC , 2019/02/10, 1 , パーツ交換
|
22
|
-
――――――――――――――――――――――――――――
|
23
|
-
|
24
28
|
【出力イメージ】
|
25
29
|
2017/06/01~2018/11/30間の製品ごとの作業履歴とその1つ前の作業履歴を表示したい。
|
26
30
|
|
@@ -35,6 +39,8 @@
|
|
35
39
|
――――――――――――――――――――――――――――――――――――――――――――――――――――――――
|
36
40
|
### 試したこと
|
37
41
|
以下のようなSQLで実装したのですが、レスポンスがあまりに遅かった為、伺った次第です。
|
42
|
+
|
43
|
+
```lang-Oracle SQL
|
38
44
|
SELECT D.SEIHIN,
|
39
45
|
D.SAGYODATE,
|
40
46
|
D.SEQ,
|
@@ -51,6 +57,10 @@
|
|
51
57
|
GROUP BY SEIHIN)
|
52
58
|
GROUP BY SEIHIN, SAGYODATE) AS SEQ2
|
53
59
|
FROM SAGYORIREKI
|
54
|
-
WHERE SAGYODATE BETWEEN TO_DATE('2017/06/01','YYYY/MM/DD')
|
60
|
+
WHERE SAGYODATE BETWEEN TO_DATE('2017/06/01','YYYY/MM/DD')
|
61
|
+
AND TO_DATE('2018/11/30','YYYY/MM/DD')
|
62
|
+
```
|
55
63
|
|
64
|
+
|
65
|
+
|
56
66
|
どのようなSQL文で実現したらよいかご教授賜りたく、何卒宜しくお願い致します。
|