我需要获取属于系统中每个项目内用户的任务数量。该表是:SQL:统计每个项目中属于某个用户的所有任务
项目: ID,名称
任务: ID,专案编号,受让人(用户)
现在我在做这个查询:
SELECT Projects.ID, Projects.Name, COUNT(*)
FROM Tasks JOIN Projects ON Tasks.ProjectID = Projects.ID
WHERE Assignee=1 GROUP BY Projects.ID;
这只能部分工作。 IT将返回任务数量,但仅限于为任务分配给用户的项目。我希望查询返回系统中的所有项目,即使未分配任何任务。
我该怎么做?
谢谢!
问候,此查询不起作用。对于根本没有任务的项目,它会返回1。 – SrgHartman 2013-04-10 12:14:01
哎呀对不起,应该是'COUNT(Tasks.ProjectID)'。请再试一次。 – 2013-04-10 12:14:47
我试图通过添加另一个左连接子句来解决问题,但它不起作用: SELECT Projects.ID,Projects.Name,COUNT(Tasks.ProjectID),COUNT(Issues.ProjectID)FROM Projects 左加入任务在Tasks.ProjectID = Projects.ID和Tasks.Assignee = 1 LEFT JOIN Issues on Issues.ProjectID = Projects.ID and Issues.Assignee = 1 GROUP BY Projects.ID; 任何想法为什么?谢谢! – SrgHartman 2013-04-10 13:10:46