根据另一个表上的级别创建列

时间:2017-07-04 12:27:20

标签: sql oracle oracle11g

这与我创建的问题类似

Split table into different level columns

我有两个表,一个表示SETTLUNIT的级别,另一个表示原始数据。通过比较一个表,我必须创建3个新列。

表1:

enter image description here

表2:

enter image description here

通过查看表1中的级别,我需要在表2中添加3列。

如果是2级,我需要带1级和2级,依此类推。

输出第1行只有1级和2级,因为它在主级表中的级别为2。

enter image description here

您能帮我解决一下如何创建查询吗?我试过UNION,但有些人没有得到所需的输出

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您不能 - 您无法知道层次结构的组织方式以及哪个父级与哪些子级相关联。

是吗:

SU_DC_1
 ├ SU_SP_1
 │ ├ SU_PZ_012
 │ └ SU_PZ_1
 └ SU_SP_2

或:

SU_DC_1
 ├ SU_SP_1
 │ └ SU_PZ_012
 └ SU_SP_2
   └ SU_PZ_1

或:

SU_DC_1
 ├ SU_SP_1
 │ └ SU_PZ_1
 └ SU_SP_2
   └ SU_PZ_012

或:

SU_DC_1
 ├ SU_SP_1
 └ SU_SP_2
   ├ SU_PZ_012
   └ SU_PZ_1

使用更多标识符,可能的层次关系数量将呈指数级增长。

您需要存储级别之间的层次关系,然后您可以获得所需的输出 - 目前没有足够的信息来执行此操作。