質問するログイン新規登録

質問編集履歴

2

Markdown記述を使用。

2019/04/15 00:12

投稿

okapy
okapy

スコア13

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[コードの表示]にて記載しました。

2019/04/15 00:12

投稿

okapy
okapy

スコア13

title CHANGED
File without changes
body CHANGED
@@ -5,22 +5,26 @@
5
5
  【テーブル】
6
6
  SAGYORIREKI(主キー:SEIHIN, SAGYODATE, SEQ)
7
7
 
8
- SEIHIN, SAGYODATE, SEQ,
8
+ CREATE TABLE SAGYORIREKI
9
+ (
9
- ――――――――――――――――――――――――――――
10
+ SEIHIN VARCHAR2(30) NOT NULL,
10
- AAA , 2016/10/01, 1 , 洗浄
11
+ SAGYODATE DATE NOT NULL,
11
- AAA , 2017/09/20, 1 , 洗浄
12
- AAA , 2017/09/20, 2 , パーツ交換
12
+ SEQ NUMBER(03) DEFAULT 0 NOT NULL,
13
- AAA , 2018/05/06, 1 , オーバーホール
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 , 2017/06/05, 1 , 洗浄
21
+ INSERT INTO SAGYORIREKI VALUES ('BBB', '2017/06/05', 1, '洗浄');
16
- BBB , 2017/06/05, 2 , 補修
22
+ INSERT INTO SAGYORIREKI VALUES ('BBB', '2017/06/05', 2, '補修');
17
- BBB , 2018/12/22, 1 , 洗浄
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') AND TO_DATE('2018/11/30','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文で実現したらよいかご教授賜りたく、何卒宜しくお願い致します。