正如标题所说,我正在寻找一种方法来计算一个人完成任务的百分比。数据的结构使得每个人都可以拥有许多任务,每个任务可以有许多子任务,如下所述:
员工
任务
子任务
我一直在尝试制作一份报告(名为“任务完成率”),列出所有员工,已完成任务的数量,他们拥有的任务总数以及完成率百分比。目前,我有以下两个问题:
这些都是必要的,还是有办法从一个查询中获取两个计数?另外,我如何在报告中使用这些总数?报告的记录源设置为Employees表,以便它可以列出所有。我已经为每个文本框准备好了文本框,但是我在使用每个文本框的源代码中的表达式构建器时实际显示查询结果时遇到问题。我将其中一个文本框的源设置为= [qry_TotalTasksPerEmployee]![TotalTasks](通过表达式构建器),但它会一直提示我输入[qry_TotalTasksPerEmployee]的值。关于如何使这个工作的任何想法?
答案 0 :(得分:1)
尝试取得已完成值的平均值。例如:
SELECT employee_id, -avg(Completed) FROM [Tasks] GROUP BY employee_id
-
之前的avg
是因为true
存储为-1
,正如@Neil所指出的那样。
我不确定您对报告的意思 - 将查询结果放在报告中应该很容易。
答案 1 :(得分:0)
我并没有真正进入msaccess报告,但由于已完成似乎是0或1,您应该努力进行以下查询 -Edit结果是1或-1为bool所以不能做一个总和(已完成)但需要一个IIF()
Select employee_id, count(*), sum(IIF(completed,1,0)), sum(IIF(completed,1,0))*100/count(*) as rate
From employees
Left join tasks
On tasks.employee_id = employees.employee_id
Group by employee_id
请注意,对于没有任务的员工,这确实会为零问题创建一个除法。你将不得不欺骗如何处理bsose(排除,显示为0%或......)