Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database DataStage递归_Database_Etl_Datastage - Fatal编程技术网

Database DataStage递归

Database DataStage递归,database,etl,datastage,Database,Etl,Datastage,我必须找到一个团队的领导,并更新员工的领导。我不确定如何在DataStage中继续进行此操作 我有一个员工表,如下所示 Emp_id mgr_id leader_id 1 100 400 101 201 500 3 202 600 当员工更改组时,我会得到一个文件来更新员工表。变更代码=CHG表示这是作业/组变更 我在文件和员工表之间做了一个对等连接,可以更新经理id。同时,我需要找到一个领导。我需要让所有向最高级

我必须找到一个团队的领导,并更新员工的领导。我不确定如何在DataStage中继续进行此操作

我有一个员工表,如下所示

Emp_id   mgr_id   leader_id  
1        100      400
101      201      500
3        202      600
当员工更改组时,我会得到一个文件来更新员工表。变更代码=CHG表示这是作业/组变更

我在文件和员工表之间做了一个对等连接,可以更新经理id。同时,我需要找到一个领导。我需要让所有向最高级别领导汇报的员工,并将其用作每个员工的领导id

文件:

文件第1行:emp_id=1的管理器发生变化;需要更新员工表中的经理id、领导id
文件第2行:emp_id=102的经理发生更改,需要更改employee表中的经理id和领导id


您能建议我如何在DataStage中继续此操作吗

好的,这个问题需要一个递归的解决方案。因为DataStage无法做到这一点(如果管理者和领导者之间的级别是可变的)。 因此,将数据加载到数据库表中,并使用递归SQL进行查询-这将为您提供所需的解决方案

例如:
使用递归SQL语句提取所有领导及其管理的业务部门(包括不同级别),并在da DataStage查找中使用此数据来丰富文件数据。

您还没有提供如何识别领导以及为什么需要在示例中更改领导的信息。一般来说,如果需要递归,我建议在SQL中执行。我得到的文件有所有员工的历史记录。我需要跟踪文件中的领导。如果员工更改了一个组而经理更改了该组,我必须找到该组的领导并更新emp.leader_id.Change code=CHG表示工作更改。我知道组织领导的id是9999(与emp_id相同;该id也在文件中).我有一种情况,员工新经理可能也会更换一个团队,在这种情况下,我也会为经理找到领导。没有用于领导id的表。请让我知道这是否可以在DataStage中完成领导是向ID=9999的组织负责人报告的人。这些是我需要找到的领导者id。只是好奇,有没有一种方法可以使用查找在datastage中获取这些数据?如果您知道路径的最大“深度”是-如果您需要一个良好且灵活的实现-否。
emp_id  mgr_id  chg_cd
1       102     CHG
101     301     CHG