我有一张包含会议的表格:
MeetID Description
-----------------------------------------------------
1 SQL Workshop
2 Cake Workshop
Run Code Online (Sandbox Code Playgroud)
我有另一张表格,其中包含会议的所有参与者:
PartID MeetID Name Role
-----------------------------------------------------
1 1 Jan Coordinator
2 1 Peter Participant
3 1 Eva Participant
4 1 Michael Coordinator
5 2 Jan Coordinator
6 2 Peter Participant
Run Code Online (Sandbox Code Playgroud)
我想找到一个包含2个或更多参与者的所有会议的列表,其中包含Role ='Coordinator'.例如.在上面的例子中,MeetID = 1而不是2.
我不能为我的生活弄清楚如何做到这一点,尽管我认为应该很简单:-)(我使用的是SQL Server 2012)
这很容易使用group by和having:
select MeetId
from participants p
where Role = 'Coordinator'
group by MeetId
having count(*) >= 2;
Run Code Online (Sandbox Code Playgroud)
注意: Role是一个潜在的关键字/保留字,因此它对于列名称来说是一个糟糕的选择.