以下は、私の正確なコードです。このクエリは、チーム ID が日付範囲内に存在しない場合を除いて、うまく機能します。チーム ID が指定された日付範囲内に存在しない場合、SQL でチーム ID をテーブルに追加し、そのカウントを 0 に設定します。その後、テーブルは自動的にチーム ID をチーム テキストに変換します。
SELECT tn.teamtext, COUNT(referteamID2) AS cnt
FROM teamnames AS tn
JOIN caseaudit AS ca
ON tn.teamID = ca.referteamID2
WHERE CONVERT(smalldatetime,dModLast,101) BETWEEN '2012-03-01' AND '2012-03-10'
AND ca.referteamid1 <> ca.referteamid2
AND teamid IN (99, 107, 124, 27, 31, 44, 110, 43, 57, 50, 46)
GROUP BY tn.teamtext
ORDER BY tn.teamtext
これは以下を返します:
4H BOSS 59
ASSET MANAGEMENT 16
BOSS 5
CUSTOMER SUPPORT 133
NETWORK ENGINEERING 15
PRODUCTION ENGINEERING 142
SECURITY 6
VOICE SERVICES 21
XEROX 8
日付の制約を与えた後に IN を使用すると、問題が発生する可能性があると言われました。