0

私たちのシステムには、クーポンを投稿したすべてのメンバーと、クーポンを投稿していないすべてのユーザーをリストする必要があります。クーポンを投稿したメンバーのリストを取得する SQL スクリプトを作成しました。コードは次のとおりです。

SELECT DISTINCT
b.Email,
b.FirstName,
b.LastName,
b.MemberDisplayName AS DisplayName,
b.MemberID
FROM ClassAd a
INNER JOIN Member b ON b.MemberID = a.MemberID
WHERE a.PostType = 'CPN'
AND DATEDIFF(d, 0, GETDATE()) <= a.ExpirationDate
AND a.Viewable = 'Y'
AND b.SystemID = 1
AND b.Claimed = 'Y'
AND b.Email IS NOT NULL

このスクリプトを元に戻して、クーポンを投稿していないユーザーのみを取得するにはどうすればよいですか?

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

4

5 に答える 5

1

クーポンを持つことがテーブル ClassAd で表されると仮定すると、NOT IN とサブクエリを使用できます。

SELECT DISTINCT
b.Email,
b.FirstName,
b.LastName,
b.MemberDisplayName AS DisplayName,
b.MemberID
FROM Member b 
WHERE
b.memberID NOT IN (SELECT a.MemberID FROM ClassAd a WHERE  a.PostType = 'CPN' AND DATEDIFF(d, 0, GETDATE()) <= a.ExpirationDate AND a.Viewable = 'Y')
AND b.SystemID = 1
AND b.Claimed = 'Y'
AND b.Email IS NOT NULL
于 2013-10-30T13:34:07.543 に答える