1

良い解決策が見つからないという問題が1つあります。

Groups_MembersGroupIdとを含むリレーショナル テーブルがありますMemberId

memberId新しいグループを作成し、パラメーター (ユーザー定義型) として配列を受け取るストアド プロシージャがあります。私が望むのは、データベースにまったく同じメンバーを持つグループが存在しないことを確認することです。

オペレーターがどのように役立つかを理解しようとしEXCEPTていますが、できません。パラメーター内のメンバーとまったく同じメンバーのセットを持つグループを返す条件が必要ですmemberId(または、そのようなグループが存在しない場合は null または 0)。

どんな助けでも大歓迎です!

ありがとう!

4

2 に答える 2

2

テーブル Groups_Members

グループ ID|メンバー ID
   1 | 1
   1 | 2
   1 | 3
   2 | 1
   2 | 2
   2 | 4
   3 | 1
   3 | 3
   3 | 4
Declare @Members table(id int)
insert into @Members
values(1), (3), (4)

Declare @MemberCount int
Select @MemberCount = count(id) From @Members

Select GroupId from 
(Select distinct groupId, memberid from Groups_Members) gm
Inner Join @Members On MemberId = id
group by GroupId
Having COUNT(MemberId) = @MemberCount

結果は 3 になります

説明はオンデマンドで提供できます。

于 2013-11-07T08:14:37.590 に答える