多对多关系 - 分组

时间:2015-05-20 07:31:26

标签: database db2

我有一个包含PRODUCT1和PRODUCT2列表的表格。 我想要做的是将表格中的所有PRODUCT1和PRODUCT2捆绑或分组,这些表格与表格中的PRODUCT1或PRODUCT2有关系/匹配,反之亦然。

输入:

PRODUCT1    PRODUCT2
00000AE503  00000Y2766
00000AE503  00000FG959
00000AE503  00000AE644
00000Y2766  00000AE503
00000Y2766  00000AE644
00000Y2766  00000FG959
00000FG959  00000Y2766
00000FG959  00000AE503
00000FG959  00000AE644
00000AE644  00000Y2766
00000AE644  00000FG959
00000AE644  00000AE503

00000AG744  00090Y3534
00000AG744  00090Y3533
00090Y3534  00000AG744
00090Y3534  00090Y3533
00090Y3533  00090Y3534
00090Y3533  00000AG744

输出:

PRODUCT1    PRODUCT2    GROUP
00000AE503  00000Y2766  1
00000AE503  00000FG959  1
00000AE503  00000AE644  1
00000Y2766  00000AE503  1
00000Y2766  00000AE644  1
00000Y2766  00000FG959  1
00000FG959  00000Y2766  1
00000FG959  00000AE503  1
00000FG959  00000AE644  1
00000AE644  00000Y2766  1
00000AE644  00000FG959  1
00000AE644  00000AE503  1

00000AG744  00090Y3534  2
00000AG744  00090Y3533  2
00090Y3534  00000AG744  2
00090Y3534  00090Y3533  2
00090Y3533  00090Y3534  2
00090Y3533  00000AG744  2

简化问题

RECORD       PRODUCT1    PRODUCT2    GROUP
 1          00000AE503  00000Y2766      1
 2          00000AE503  00000FG959      1                                           
 3          00000AG744  00090Y3534      2 

如果我们查看三条记录,第一条记录到达我们可以直接将组分配为1,而对于第二条记录,我们需要检查第一条记录,如果有任何PRODUCT或PRODUCT1匹配,那么我们需要将其停放在相同的组..否则我们需要创建不同的组..EX喜欢

record2.PRODUCT1=record1.PRODUCT1 or record2.PRODUCT1=record1.PRODUCT2
record2.PRODUCT2=record1.PRODUCT1 or record2.PRODUCT2=record1.PRODUCT1 

0 个答案:

没有答案