我有一个有两个表的SQL Server 2008数据库。这两个表是CoreGroup和CoreGroupMember。请注意,我没有设置这些表。无论如何,表结构是:
CoreGroup
---------
ID
GroupMember1MemberName
GroupMember2MemberName
GroupMember3MemberName
GroupMember4MemberName
CoreGroupMember
---------------
ID
CoreGroupID
MemberName
我需要确定与具有特定MemberName的CoreGroupMember关联的CoreGroup记录数。虽然有一个问题真的让我陷入困境。某些CoreGroup记录只有一个成员与之关联。我需要检索具有多个 CoreGroupMember记录的CoreGroup记录,其中至少有一个记录具有特定的MemberName。我似乎无法弄清楚多记录部分。有人可以帮助我吗?
谢谢!
答案 0 :(得分:0)
我会抓住它,希望我能正确理解这些要求。首先,我使用cte查找具有多个成员的所有组,然后使用该结果集查找具有特定成员的组。
with cteMultipleMembers as (
select cg.ID, COUNT(*) as MemberCount
from CoreGroup cg
inner join CoreGroupMember cgm
on cg.ID = cgm.CoreGroupID
group by cg.ID
having COUNT(*) > 1
)
select mm.ID
from cteMultipleMembers mm
inner join CoreGroupMember cgm
on mm.ID = cgm.CoreGroupID
and cgm.MemberName = @YourMemberName