2016-10-06 179 views
1

我有2个表tblProjects & tblTask​​sSQL查询GROUP BY和SUM

tblProjects已经

ID,PName columns 

tbltasks已经

ID,PID,TaskDescription,Owner,Status 

我想写一个查询得到一个状态其中有多少任务处于所有项目的开启和关闭状态

输出像

PName|Open|Closed 

我使用了一些子查询和点心和GROUPBY,但并没有如预期的输出。

请求专家帮忙。

在此先感谢。 :)

+0

您可以包括你已经尝试查询? –

回答

-1
may be this one help 

SELECT t1.ID, 
     t1.PName, 
     Open=SUM(CASE (t2.Status) WHEN 'open' THEN 1 ELSE 0 END), 
     Closed=SUM(CASE (t2.Status) WHEN 'closed' THEN 1 ELSE 0 END) 
FROM tblProjects t1 
INNER JOIN tblTasks t2 
    ON t1.ID = t2.PID 
GROUP BY t1.ID, 
     t1.PName 
+0

这是我的答案的公然副本。适当降低了投票率。 –

+0

亲爱的它不是我的不是你的它只是简单的回答这个问题 –

0

我不是专家,但你可以尝试它使用条件聚合以下简单查询:

SELECT t1.ID, 
     t1.PName, 
     SUM(CASE WHEN t2.Status = 'open' THEN 1 ELSE 0 END) AS Open, 
     SUM(CASE WHEN t2.Status = 'closed' THEN 1 ELSE 0 END) AS Closed 
FROM tblProjects t1 
INNER JOIN tblTasks t2 
    ON t1.ID = t2.PID 
GROUP BY t1.ID, 
     t1.PName 
+0

我正在写相同的查询只有我错过的事情是案件。感谢您的帮助家伙。 :) – gauravmajithia

+0

谢谢你的投票我这是一个便宜的东西,亲爱的不是我的不是你的它只是简单的回答这个问题 –