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

質問編集履歴

1

SQL文を追記、表を修正

2020/10/28 05:10

投稿

yoshit
yoshit

スコア12

title CHANGED
File without changes
body CHANGED
@@ -1,23 +1,48 @@
1
+ **追記**
2
+ Orlofsky様
3
+ 表に誤りがありました、申し訳ないです。
4
+ create tableとinsert tableも追記させて頂きます。
5
+ 1階層目のOYAと3階層めのKOを表示したいというのがやりたい事です。
6
+
7
+ ```sql
8
+ CREATE TABLE BOM (
9
+ OYA VARCHAR2(20) NOT NULL,
10
+ KO VARCHAR2(20) NOT NULL,
11
+ KAZU NUMBER NOT NULL
12
+ );
13
+
14
+ ALTER TABLE BOM ADD CONSTRAINT BOM_PK PRIMARY KEY (OYA, KO);
15
+ ```
16
+ ```sql
17
+ INSERT INTO BOM(OYA, KO, KAZU) VALUES ('A', 'B', 1);
18
+ INSERT INTO BOM(OYA, KO, KAZU) VALUES ('B', 'C', 1);
19
+ INSERT INTO BOM(OYA, KO, KAZU) VALUES ('C', 'D', 1);
20
+ INSERT INTO BOM(OYA, KO, KAZU) VALUES ('AA', 'BB', 1);
21
+ INSERT INTO BOM(OYA, KO, KAZU) VALUES ('BB', 'CC', 1);
22
+ INSERT INTO BOM(OYA, KO, KAZU) VALUES ('CC', 'DD', 1);
23
+ ```
24
+
1
25
  **環境**
2
26
  Oracle 12 x64
3
27
  Windows Server 2019 Standard x64
4
28
 
5
29
  **実現したいこと**
6
30
  以下のようなBOMテーブルがあります。
31
+ (修正しました)
7
- ||||
32
+ |OYA|KO|KAZU|
8
33
  |:--|:--:|--:|
9
34
  |A|B|1|
10
35
  |B|C|1|
11
- |D|E|1|
36
+ |C|D|1|
12
37
  |AA|BB|1|
13
38
  |BB|CC|1|
14
- |DD|EE|1|
39
+ |CC|DD|1|
15
40
 
16
41
  これをこういった表として出力したいのですが、どういったSQLを書けばよいのかわからず質問させて頂きます。
17
42
  |親|子|
18
43
  |:--|:--:|
19
- |A|E|
44
+ |A|D|
20
- |AA|EE|
45
+ |AA|DD|
21
46
 
22
47
  再帰SQLの書き方をググって試してみたのですが、いまいちピンときませんでした。
23
48
  Oracleには階層問い合わせというのもあると見たので、そちらでも構いません。