相同属性归类有关问题
求助:相同属性归类问题
现有一张表Property
内容如下
MemberID P1 P2 P3
1 1A 2B 3A
2 1B 2D 3C
3 1A 2E 3B
4 1C 2A 3D
5 1D 2C 3E
6 1E 2B 3C
P1 P2 P3分别为Member的三个属性
现要求将有任何一个属性相同的Member放到同一组中,结果如下
MemberID GroupID
1 1
3 1
6 1
2 1
4 2
5 3
即Member1的P1和Member3相同,为同一组,P2和Member6相同,6也入组,由于Member6的P3和Member2相同,因此2也入组,以此类推,直到无法找到属性相同的成员为止(请考虑属性是N个的情况)。
------解决方案--------------------
现有一张表Property
内容如下
MemberID P1 P2 P3
1 1A 2B 3A
2 1B 2D 3C
3 1A 2E 3B
4 1C 2A 3D
5 1D 2C 3E
6 1E 2B 3C
P1 P2 P3分别为Member的三个属性
现要求将有任何一个属性相同的Member放到同一组中,结果如下
MemberID GroupID
1 1
3 1
6 1
2 1
4 2
5 3
即Member1的P1和Member3相同,为同一组,P2和Member6相同,6也入组,由于Member6的P3和Member2相同,因此2也入组,以此类推,直到无法找到属性相同的成员为止(请考虑属性是N个的情况)。
------解决方案--------------------
create table #tb(MemberID int ,P1 varchar(10), P2 varchar(10), P3 varchar(10))
insert into #tb
select 1,'1A','2B','3A'
union all select 2,'1B','2D','3C'
union all select 3,'1A','2E','3B'
union all select 4,'1C','2A','3D'
union all select 5,'1D','2C','3E'
union all select 6,'1D','2B','3C'
select MemberID,P1, 1 as groupID
from #tb a
where exists (select 1 from