2017-02-07 5 views
0

У меня есть следующая таблица.Как получить счет полной и ожидающей задачи по отделу

Таблица: Отдел

ID int 
Name Varchar(50) 

Таблица: Задача

Id int 
ProjectId int, 
TaskName varchar(50) 
Status bit() -- 100 for complete else notComplete 

Таблица: Пользователь

UserId int 
DepId int 
Name varchar(50), 

Таблица: командный игрок

Id int, 
UserId int, 
ProjectId int 

Я просто хочу получить счет полной и ожидающей задачи отдела. Вот то, что я пробовал:

select sub.Name,sub.result,count(*) 
from (
    select tmm.userid,dp.Name,tm.id,tm.ActivityName,CASE ActualComplete WHEN 100 THEN 'done 100' ELSE 'In Complete' END as result 
    from MasterActivity tm 
    inner join TeamMember_Master tmm on tmm.projectid=tm.projectid 
    inner join Users_Master us on us.UserId=tmm.userid 
    inner join departments dp on us.DepartmentId=dp.id 
) sub 
group by sub.name,sub.result 
+0

Привет @dasblinkenlight Я написал следующий запрос. выберите sub.Name, sub.result, count (*) from (выберите tmm.userid, dp.Name, tm.id, tm.ActivityName, CASE ActualComplete WHEN 100 THEN 'done 100' ELSE 'In Complete' END как результат от MasterActivity tm внутреннее соединение TeamMember_Master tmm on tmm.projectid = tm.projectid внутреннее соединение Users_Master us on us.UserId = tmm.userid внутренние отделы соединения dp на us.DepartmentId = dp.id) sub group by sub.name, sub .result –

+0

Это гораздо лучший вопрос с запросом! – dasblinkenlight

ответ

0

Попробуйте так:

select dep.ID, dep.Name, sum(case when t.Status = 100 then 1 else 0 end) as Completed_Cnt, 
    sum(case when t.Status <> 100 then 1 else 0 end) as NotCompleted_Cnt 
from Task t 
inner join TeamMember tm on tm.ProjectId = t.ProjectId 
inner join [User] u on u.Id = tm.UserId 
inner join Department dep on dep.Id = u.DepId 
group by dep.Id, dep.Name 

Это должно работать (это в верхней части моей головы), но если вы не обеспечивают минимальный пример с выборочные данные и ожидаемый результат, мы не можем больше помочь вам.

Просьба ознакомиться с этим article о том, как задавать вопросы по SO.

+0

Спасибо @mihail stancescu –

+0

Не забудьте [принять этот ответ] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), если это вам помогло. Принятие ответов вознаграждает вкладчика и помогает другим найти рабочее решение. –

 Смежные вопросы

  • Нет связанных вопросов^_^