我有以下 SQL:
SELECT
ud.firstname + ' ' + ud.lastname,
COUNT(a.createdDate) AS ActivityCount,
au.LastActivityDate
FROM
dbo.aspnet_Users au
INNER JOIN dbo.UserDetails ud
ON au.UserId = ud.AspNetUserId
LEFT OUTER JOIN dbo.audit a
ON au.LoweredUserName = a.username
WHERE
(
au.LoweredUserName IN ('u1', 'u2', 'u3')
)
AND a.createdDate > '2012-09-18'
GROUP BY ud.firstname + ' ' + ud.lastname, au.LastActivityDate
ORDER BY au.LastActivityDate DESC
但是让我们说,u1
并且u3
没有任何活动,因为2012-09-18
-- 那么结果只包含u2
.
我认为LEFT OUTER JOIN
确保我从中获取所有记录aspnet_Users
- 但我想这是由于我的WHERE
子句中的秒条件过滤另一个表......
为了获得所有指定的用户,我需要更改什么,然后如果在给定期间不存在数据,则 ActivityCount 为零?