2017-08-03 5 views
2

私は現在、ストアドプロシージャに取り組んでいる条件リストに一致すると私はすべてGroupIdはすべてTypeIdsを持っていないことを選択したクエリを、記述する必要があります。この例について検索グループは不完全

Id | GroupId | TypeId | 
---+---------+--------+ 
1 | 1  | 1  | 
2 | 1  | 2  | 
3 | 1  | 3  | 
4 | 2  | 1  | 
5 | 2  | 2  | 
6 | 3  | 1  | 
7 | 3  | 2  | 
8 | 3  | 3  | 
9 | 4  | 2  | 

それらgroupesは、3つのすべてのTypeId S 1を持っていないので、私は、GroupId S 2と4を選択したいのですが、2と3 GroupId 4のみTypeId 2を持っていますGroupId 2のみTypeId s 1と2

を持っていながら、私の現在のクエリは次のようになりますが、動作しません:

SELECT [A].ActorPoolId 
FROM [OfferCatalog].[Actor] [A] 
WHERE [A].ActorTypeId IN ('1', '2', '3') 

この問題の解決方法をご存知ですか?

答えて

4

あなたができるユーザーgroup by + having組み合わせ:あなたはケースActorTypeIddistinctを使用して省略することができます

select [A].ActorPoolId 
from [OfferCatalog].[Actor] [A] 
where [A].ActorTypeId in ('1', '2', '3') 
group by [A].ActorPoolId 
having count(distinct [A].ActorTypeId) < 3 

は、各ActorPoolIdに対して一意です。

+1

ありがとう、完璧に動作します! :) – TimHorton