[Users]
この例のために簡略化した の表があります。
uID | uName | uSalesRep
----+-------+----------
1 | John | 1
2 | Bob | 1
3 | Fred | 1
4 | Stu | 1
そして売上表[Activity]
:
aID | aDate | aUserID | aText
----+------------+---------+---------------
1 | 2013-10-09 | 1 | John did stuff
2 | 2013-10-14 | 2 | Bob did stuff
3 | 2013-10-17 | 3 | Fred did stuff
すべての営業担当者のリストを、2013 年 10 月 14 日から始まる 1 週間の活動とともに取得したいと考えています。その方法は次のとおりです。
SELECT uID, Name, aID, aDate, aText
FROM [Users]
LEFT JOIN [Activity] ON uID = UserID
WHERE (aDate >= '2013-10-14' OR aDate = NULL)
AND (aDate <= '2013-10-18' OR aDate = NULL)
AND uSalesRep = 1
すべての担当者を取得することを期待して a を使用しLEFT JOIN
ましたが、これは要件によって上書きされていると思いaDate
ます。aDate = NULL
まったく活動していない担当者を含めますが、指定された範囲外で活動している担当者は除外されています。
記録されたアクティビティに関係なく、すべての担当者を少なくとも 1 回取得するにはどうすればよいですか?
御時間ありがとうございます。