如何计算多个字段中存在的值的次数

时间:2015-04-23 16:15:14

标签: sql ms-access-2010

我正在构建一个跟踪系统,每个项目最多可由三名团队成员负责。我正在尝试构建一个查询来计算团队成员姓名([FullName])出现在任何负责字段中的次数([Responsible],[Responsible2],[Responsible3])。

Example Responsible Table

所以对于这个例子,我想要一个查询,看看我的团队表和我负责的表,并输出这样的东西。

Desired output

我试过

SELECT tblTeam.FullName, Count([FullName]=[Responsible] Or [Fullname]=[Responsible2] Or [FullName]=[Responsible3]) AS CountResp
FROM tblTeam, qryItems
GROUP BY tblTeam.FullName;

但是我得到的结果是,应该拥有零值的人不会,某些应该具有正值的人的数字太高,而一个有许多负责实例的人的数字太低。任何人都可以在这里指出我的菜鸟错误吗?

2 个答案:

答案 0 :(得分:2)

一种简单的方法是将三列合并,然后使用count(*)进行分组。如下所示:

select name, count(*) from(
select resp1 as name from table1
union all
select resp2 as name from table1
union all
select resp3 as name from table1)
group by name

答案 1 :(得分:1)

一种方法:

SELECT FullName, 
SUM(
       (select count(*) from qryItems where Responsible = FullName) + 
       (select count(*) from qryItems where Responsible2 = FullName) +
       (select count(*) from qryItems where Responsible3 = FullName)) 
FROM tblTeam
GROUP BY FullName