我需要循环Sql表直到满足某个条件

问题描述 投票:0回答:0

我正在尝试根据组织单位查找员工的主管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 进行匹配。我正在尝试不使用游标并循环遍历每条记录进行比较。

sql self-join
© www.soinside.com 2019 - 2024. All rights reserved.