我正在尝试根据组织单位查找员工的主管ID。
A表:员工
员工编号 | 开始日期 | 结束日期 | 组织单位 |
---|---|---|---|
1001 | 20070618 | 20070624 | 5001 |
表 B:组织单位
组织类型 | 组织单位 | 代码 | 状态 | 开始日期 | 结束日期 | 西德 | |
---|---|---|---|---|---|---|---|
O | 5001 | 乙 | 008 | 20050101 | 20160619 | 4002 | |
O | 5001 | A | 002 | 20050101 | 20110201 | 4001 | |
O | 4001 | 乙 | 008 | 20070618 | 20070624 | 4110 | |
O | 4001 | A | 002 | 20070618 | 20070624 | 4003 | |
O | 4003 | 乙 | 012 | 20070618 | 20070624 | 4444 | - 主管 ID |
步骤 1 从表 A 中获取 Emp ID 1001 的组织单位
第 2 步在表 B 中查找组织单位的匹配项并获取状态 B012
的 SID
第 3 步如果第 2 步中的值不存在,检查状态,A 002,获取新的 SID
第 4 步 如果第 3 步中的值存在,则获取新的 SID 和表 B 中的状态 B012,其中 OrgUnit = SID(来自第 3 步)
第 5 步)如果第 4 步中的值不存在,则在其中搜索状态 A002,其中 OrgUnit = SID(第 4 步)并从表 B 中获取新的 SID
第 6 步)如果第 5 步的值存在,为 OrgUnit = SID(来自第 5 步)的状态 B 012 获取新的 SID
第 7 步)如果第 6 步中存在值,则在表 B 中获取状态 008 的新 SID,其中 OrgUnit = SID(来自第 6 步) (注意:步骤 3、4、5 有点循环场景,直到我们有状态 B 012 的 SID)
我能够获取快乐路径的数据。如果找不到数据,则不确定如何针对不同的代码状态将 SID 与表 B 进行匹配。我正在尝试不使用游标并循环遍历每条记录进行比较。