2016-10-06 2 views
1

У меня есть 2 таблицы tblProjects & tblTasksSQL Query для группы с помощью и SUM

tblProjects имеет

ID,PName columns 

tbltasks имеет

ID,PID,TaskDescription,Owner,Status 

Я пытаюсь написать запрос для получения статуса проектов, которые дают количество заданий в открытом и закрытом состоянии для всех проектов

Выходной быть как

PName|Open|Closed 

Я использовал некоторые подзапросы и Sum и 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

спасибо за меня, его дешевая вещь, дорогая ее не моя, а не твоя просто ответ на вопрос –