1

私はSQLに非常に慣れていません。実際の問題ははるかに大きいです。次の場合の情報が必要です。私は次のような2つのテーブルを持っているとしましょう

MemberTable

MonthID  | UserID  | TeamID
-----------------------------
  1      |  1       | 6
  1      |  2       | 6
  1      |  3       | 6
  1      |  4       | 6

ReportTable

ID* |  MonthID  | UserID  | IsSend
-----------------------------------
 1  |    1      |    2     | False
 2  |    1      |    3     | True

ReportTableに存在しないユーザーと、IsSendValueがFalse、つまりcount=3のユーザーの総数が必要です。

1つのクエリでそれを行うことは可能ですか?それが不可能であり、可能な解決策である場合は、説明をお願いします。

4

1 に答える 1

4
SELECT COUNT(DISTINCT UserID)
FROM MemberTable
WHERE UserID NOT IN (SELECT UserID FROM ReportTable)
OR UserID IN (SELECT UserID FROM ReportTable WHERE IsSend=FALSE)

1、2、4のユーザーを返す必要がUserIDあります。同じ結果を達成するためのより簡潔なクエリは次のとおりです。

SELECT COUNT(DISTINCT UserID)
FROM MemberTable
WHERE UserID NOT IN (SELECT UserID FROM ReportTable WHERE IsSend=TRUE)
于 2012-04-09T09:02:49.700 に答える