2017-08-11 4 views
0

いくつかの異なるサービスが利用可能な場合に、サービス「a」を使用したメンバーIDを返す必要があります。多くのサービスのうち1つのサービスにのみビジネスを使用し、複数回ビジネスを使用した返信メンバーID

例:テーブルから、クエリはメンバ1とメンバ5がサービスaのみを使用しているため返されます。これを行うための

memberID service date 
1    a 1 
1    a 2 
2    a 3 
2    b 4 
3    c 5 
1    a 6 
3    c 7 
4    a 8 
4    c 9 
5    a 10 
+2

はあなたがしようとしているものを私たちに示してください仕事だと思います。 – Alex

答えて

0

おそらくよりエレガントな方法は、私はそれが

WITH DC AS 
(
SELECT 
    memberID 
FROM 
    [Table] 
GROUP BY 
    memberID 
HAVING 
    COUNT(DISTINCT [service]) = 1 
    ) 
SELECT DISTINCT 
    DC.* 
FROM 
    DC 
CROSS APPLY 
    (
    SELECT [Table].memberID FROM [Table] AS S WHERE S.memberID = DC.memberID AND S.[service] = 'a' 
    ) 
    AS X 
関連する問題