ORACLE/階層問い合わせ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(ORACLE)
*階層問い合わせ [#u3cc11ad]
親組織コードのついた組織テーブルで、ある組織コード以下を...
** 組織テーブルを作ります。 [#g7947730]
CREATE TABLE DIR
(
DCD VARCHAR2(10) NOT NULL,
PCD VARCHAR2(10),
DNAME VARCHAR2(30)
)
/
COMMENT ON COLUMN DIR.DCD IS '組織コード'
/
COMMENT ON COLUMN DIR.PCD IS '親組織コード'
/
COMMENT ON COLUMN DIR.DNAME IS '組織名称'
/
** データを入力します [#w545b754]
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('0000',NULL,'組...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('A100','0000','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('A110','A100','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('A111','A110','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('A111-1','A111'...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('A111-2','A111'...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('B100','0000','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('B110','B100','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('B111','B110','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('C100','0000','...
※ 以下のような構造の組織です
+- A100 - A110 - A111 + A111-1
| |
| + A111-2
0000 -+- B100 - B110 - B111
|
+- C100
** A100 以下の組織を取得 [#x83a3643]
select * from DIR
start with DCD='A100'
connect by prior DCD = PCD
/
DCD PCD DNAME
---------- ---------- ---------------------
A100 0000 組織A100
A110 A100 組織A110
A111 A110 組織A111
A111-1 A111 組織A111-1
A111-2 A111 組織A111-2
** A110 以下の組織を取得 [#u2e40e41]
select * from DIR
start with DCD='A110'
connect by prior DCD = PCD
/
DCD PCD DNAME
---------- ---------- ---------------------
A110 A100 組織A110
A111 A110 組織A111
A111-1 A111 組織A111-1
A111-2 A111 組織A111-2
** 0000 以下の組織を取得 [#i8479303]
select * from DIR
start with DCD='0000'
connect by prior DCD = PCD
/
DCD PCD DNAME
---------- ---------- ---------------------
0000 組織0000
A100 0000 組織A100
A110 A100 組織A110
A111 A110 組織A111
A111-1 A111 組織A111-1
A111-2 A111 組織A111-2
B100 0000 組織B100
B110 B100 組織B110
B111 B110 組織B111
C100 0000 組織C100
#vote(参考になった[5],参考にならなかった[1])
終了行:
#navi(ORACLE)
*階層問い合わせ [#u3cc11ad]
親組織コードのついた組織テーブルで、ある組織コード以下を...
** 組織テーブルを作ります。 [#g7947730]
CREATE TABLE DIR
(
DCD VARCHAR2(10) NOT NULL,
PCD VARCHAR2(10),
DNAME VARCHAR2(30)
)
/
COMMENT ON COLUMN DIR.DCD IS '組織コード'
/
COMMENT ON COLUMN DIR.PCD IS '親組織コード'
/
COMMENT ON COLUMN DIR.DNAME IS '組織名称'
/
** データを入力します [#w545b754]
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('0000',NULL,'組...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('A100','0000','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('A110','A100','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('A111','A110','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('A111-1','A111'...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('A111-2','A111'...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('B100','0000','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('B110','B100','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('B111','B110','...
INSERT INTO DIR (DCD, PCD, DNAME) VALUES('C100','0000','...
※ 以下のような構造の組織です
+- A100 - A110 - A111 + A111-1
| |
| + A111-2
0000 -+- B100 - B110 - B111
|
+- C100
** A100 以下の組織を取得 [#x83a3643]
select * from DIR
start with DCD='A100'
connect by prior DCD = PCD
/
DCD PCD DNAME
---------- ---------- ---------------------
A100 0000 組織A100
A110 A100 組織A110
A111 A110 組織A111
A111-1 A111 組織A111-1
A111-2 A111 組織A111-2
** A110 以下の組織を取得 [#u2e40e41]
select * from DIR
start with DCD='A110'
connect by prior DCD = PCD
/
DCD PCD DNAME
---------- ---------- ---------------------
A110 A100 組織A110
A111 A110 組織A111
A111-1 A111 組織A111-1
A111-2 A111 組織A111-2
** 0000 以下の組織を取得 [#i8479303]
select * from DIR
start with DCD='0000'
connect by prior DCD = PCD
/
DCD PCD DNAME
---------- ---------- ---------------------
0000 組織0000
A100 0000 組織A100
A110 A100 組織A110
A111 A110 組織A111
A111-1 A111 組織A111-1
A111-2 A111 組織A111-2
B100 0000 組織B100
B110 B100 組織B110
B111 B110 組織B111
C100 0000 組織C100
#vote(参考になった[5],参考にならなかった[1])
ページ名: