我正在构建一个跟踪系统,每个项目最多可由三名团队成员负责。我正在尝试构建一个查询来计算团队成员姓名([FullName])出现在任何负责字段中的次数([Responsible],[Responsible2],[Responsible3])。
所以对于这个例子,我想要一个查询,看看我的团队表和我负责的表,并输出这样的东西。
我试过
SELECT tblTeam.FullName, Count([FullName]=[Responsible] Or [Fullname]=[Responsible2] Or [FullName]=[Responsible3]) AS CountResp
FROM tblTeam, qryItems
GROUP BY tblTeam.FullName;
但是我得到的结果是,应该拥有零值的人不会,某些应该具有正值的人的数字太高,而一个有许多负责实例的人的数字太低。任何人都可以在这里指出我的菜鸟错误吗?
答案 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