C# 使用SQL Server数据库上的查询对某些类型的记录进行计数,并按某些外键进行分组

C# 使用SQL Server数据库上的查询对某些类型的记录进行计数,并按某些外键进行分组,c#,asp.net,sql-server,select,C#,Asp.net,Sql Server,Select,我正在使用Visual Studio 2010 professional和SQL Server数据库开发一个ASP.NET web应用程序。我在数据库中有一些记录用于下一个表: 是否有一种方法可以计算,例如,仅使用一个查询,根据sarcini中的每个雇员(angajat)外键,表sarcini中有多少条记录已stare_task(意味着task_state)=关闭? 我认为这太模棱两可了,但我不知道如何确切地解释我的意思 Select id_angajat ,sum(case

我正在使用Visual Studio 2010 professional和SQL Server数据库开发一个ASP.NET web应用程序。我在数据库中有一些记录用于下一个表:

是否有一种方法可以计算,例如,仅使用一个查询,根据sarcini中的每个雇员(angajat)外键,表sarcini中有多少条记录已stare_task(意味着task_state)=关闭? 我认为这太模棱两可了,但我不知道如何确切地解释我的意思

Select
    id_angajat
    ,sum(case when stare_task = 'Closed' then 1 else 0 end) as [Closed_Records]
From sarcini
Group by id_angajat
假设您使用的是MS SQL Server,并且您只使用了sarcini表


编辑:Sql Fiddle示例:

什么版本的Sql server,为什么您不能解释您的意思?如果您不能解释,则很难回答。请解释如何区分哪些是“共享任务”。您希望此字段不为空吗?@TBogdan:您使用的是ORM吗?SQL Server 2008,其主要思想是我想绘制一个饼图,该饼图将由Angajit分割。id_Angajit(Angajit=employee)示例:3条记录(3名员工)=>饼图中的3段,但主要的问题是下一个问题:100%的馅饼意味着所有的sarcini记录都有stare_tast='closed',所以我必须计算每个id_angajat的sarcini记录中有多少有stare_task='closed'。。。我希望这解释了我想做得更好的地方。aaaaaaa,stare_task='closed',我不把它们称为closed记录…我的错,那只是一个字符串属性…那么,当记录关闭时,stare_task会显示什么?