在这里,我在 person 表上使用了左连接,因为我想包含该表中的每条记录,即使它在任务表中没有关联记录。如何解决此问题以在结果中包含 0?
SELECT CONVERT(NVARCHAR, COUNT(p.personID)) AS count,
CONVERT(DECIMAL(4, 2), 1.0 * COUNT(p.personID) / DATEDIFF(DAY, @startDate, @endDate)) AS average,
p.personID,
p.firstname,
p.lastname,
c.companyname
FROM Tasks t
LEFT JOIN Person p
ON p.personID = t.personID
JOIN Client c
ON c.id = p.employer
JOIN Commission m
ON m.ClientID = c.ID
WHERE t.created BETWEEN @startDate AND @endDate
AND m.owner IN ( 'John Doe' )
GROUP BY p.personID,
p.firstname,
p.lastname,
c.companyname
ORDER BY c.companyname,
count DESC