【问题标题】:Required Oracle Query to populate Hierarchies填充层次结构所需的 Oracle 查询
【发布时间】:2017-01-21 18:08:52
【问题描述】:

背景... 作为现有数据转换的一部分,我们需要转换以使用有限信息填充 Adhoc Hierarchies。

目前,我们有一些来自 CXO House 的可数成员被视为此 Adhoc Hierarchies 的用户。 他们可以出于某种目的选择员工分层组合。

这些层次结构只有父子关系,并且可以在任何级别到任何级别的组织层次结构。 换句话说……孩子永远不会成为父母,除非他有下属。

 We have an employee table of ORG EmpHierarchy (OH) that has Organizational hierarchies. 
But, which can't be directly used but we can take help of these columns to form our logic. This table is no way related to current model. 

我们还有一些其他的表 HeadofDepartment(HOD)、HierarchyDetails(HD) 和一个与 HD 相同的 Stage Table。

OrgEmpHierarchy (OH) Has:
OH_ID - Organizational HierarchyID (DB Sequence)
OH_PID - (Parent ID) one of the values from previous column.
OH_EmpID - Organizational EmpID.

HeadofDepartment (HOD) Has:
HOD_ID - Head of Dept. ID (DB Sequence)
HOD_EmpID - Organizational EmpID.

HierarchyDetails (HD) Has:
HD_ID - Hierarchy Details ID (DB Sequence)
HD_PID - (ParentID) of of the values from previous column.
HD_HOD_ID - (Foreign Key) HOD_ID from HOD.
HD_EmpID - Organizational EmpID.

我们需要从 Hierarchy Details (HD) 表中的 Head of Department (HOD) 填充每个 HOD_ID 的 Hierarchy。 我们能够在 HD 中为 HD_ID、HD_HOD_ID、HD_Emp_ID 填充值。 HD_PID 填充为 NULL。

现在在 OH,HOD 的帮助下,我需要在 HD 表的 HD_PID 中填充层次结构。

谁能给我一个更新 HD_PID 的 Oracle SQL/PLSQL 查询?

【问题讨论】:

标签: sql oracle hierarchical-query


【解决方案1】:

由于这是一项作业,我不会“给你 SQL”。

您将需要使用具有基本格式的分层查询:

SELECT some_columns
FROM   a_table
START WITH some_condition
CONNECT BY PRIOR some_column = some_other_column

那么,从哪个表中选择?好吧,查看您的表 OrgEmpHierarchy 包含 OH_PID(父 ID)和 OH_EmpID 之间的关系,因此您应该使用此表并连接这些列。

那么,你应该从什么开始呢?没有任何数据,很难说,但大概层次结构的顶部是所有者/董事或部门负责人 - 如果是后一种情况,那么您可以从IN@@的员工开始查看987654327@表。

选择什么?

  • 您正在使用OH_PIDOH_EmpID 列连接查询,因此您可以选择它们,因为它们定义了层次关系。
  • 您可以使用ROWNUM 选择序列或使用实际序列YOUR_SEQUENCE.NEXTVAL
  • 您需要了解部门主管 - 假设您从那些部门主管开始层次结构,那么有一个非常简单的运算符可以让您“通过根连接”层次结构 - 我确定一个简单的网络搜索将通知您其语法和用法。

这几乎涵盖了所有内容,但您需要将其插入表格中。所以,使用:

INSERT INTO HierarchyDetails ( columns )
SELECT ...

【讨论】:

  • 这不是练习计划作业。我们需要在 Hierarchy Details (HD) 中为 Head of Department (HOD) 中的每个 HOD_ID 准备 Hierarchy。
猜你喜欢
  • 2020-04-17
  • 2015-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-10
  • 1970-01-01
  • 1970-01-01
  • 2019-05-02
相关资源
最近更新 更多