下面是我的确切代码。此查询非常有效,除非在日期范围内不存在 teamid。如果在指定的日期范围内不存在 teamid,我希望 SQL 将 teamid 添加到表中并将其计数设置为 0。然后,我的表会自动将 teamid 转换为我的 teamtext。
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 有关。