DB2中的交叉并行逻辑

DB2中的交叉并行逻辑,db2,Db2,我有一个服务员 Employee_Id Loan _ID Cross_Collateral_Employee_Id 97 481 117 117 481 97 456 678 645,289 235 943 298 645 678 456,289 298 943 235 289 678

我有一个服务员

Employee_Id  Loan _ID  Cross_Collateral_Employee_Id
97           481       117
117          481       97
456          678       645,289
235          943       298
645          678       456,289
298          943       235
289          678       456,645
我需要查询以获取
交叉辅助资料\u员工Id

逻辑是
Employee Id=97
拥有
Loan Id=481
并且
Emp Id=117
也拥有相同的
Loan Id
。因此97的跨抵押品员工Id将为117,反之亦然。如果
贷款Id
与多个员工Id相同,则应使用逗号分隔填充相同的Id

我尝试了以下查询: 选择不同的a.员工Id、b.员工Id作为交叉抵押品 来自雇员a 内部联接雇员b a.贷款ID=b.贷款ID a.员工Id b.员工Id

但这是为同一员工Id提供多个记录。我希望交叉抵押品信息以逗号分隔


使用IBM Data Studio 3.2.0.0版

需要逗号分隔的列吗?这违反了良好的规范化实践。查询和更新也是一件非常麻烦的事情,而且(通常)会阻止对给定列使用索引。尤其是由于
交叉担保物\u员工Id
(更正了“Employe”的拼写)是可派生的。您的数据是“目标”吗?您还没有填充最后一列吗?是的,它是一个目标表。我尚未填充值。我尝试了此查询:选择不同的a.Employee\u Id,b.Employee\u Id作为交叉抵押品,从员工a内部加入员工b on a.Loan\u Id=b.Loan\u Id和a.Employee\u Id b.Employee\u Id;但这是为同一个员工Id提供多个记录。我希望它以逗号分隔。为什么要这样?这真是个坏主意。几乎可以肯定的是,在需要时导出给定的列要比像这样保持它容易得多。这些信息应该是对问题的编辑。实际上这是一个要求。他们希望该列以逗号分隔的形式填充……可能有人比他们实际更聪明。对于基于id的列,几乎没有什么好的理由这样做。仍然没有回答DB2的版本/平台,尽管递归CTE版本几乎与DB无关。请注意,您需要元素的一致顺序,这将使查询更容易,但更新更难(尽管更新已经很难了,所以无论如何都会有伤害)。