Ms access MS Access计算报表中已完成任务的百分比

Ms access MS Access计算报表中已完成任务的百分比,ms-access,report,Ms Access,Report,正如标题所说,我正在寻找一种方法来计算一个人完成任务的百分比。数据的结构使每个人都可以有许多任务,每个任务可以有许多子任务,如下所述: 员工 (主键)(自动编号)员工id (文本)名字 (文本)姓氏 任务 (主键)(自动编号)任务标识 (fk)(编号)员工id (备忘录)说明 (是/否)已完成 子任务 (主键)(自动编号)子任务\u id (fk)(编号)任务标识 (备忘录)说明 (是/否)已完成 我一直在尝试制作一份报告(名为“任务完成率”),列出所有员工、他们完成的任务数量、他们

正如标题所说,我正在寻找一种方法来计算一个人完成任务的百分比。数据的结构使每个人都可以有许多任务,每个任务可以有许多子任务,如下所述:

员工

  • (主键)(自动编号)员工id
  • (文本)名字
  • (文本)姓氏
任务

  • (主键)(自动编号)任务标识
  • (fk)(编号)员工id
  • (备忘录)说明
  • (是/否)已完成
子任务

  • (主键)(自动编号)子任务\u id
  • (fk)(编号)任务标识
  • (备忘录)说明
  • (是/否)已完成
我一直在尝试制作一份报告(名为“任务完成率”),列出所有员工、他们完成的任务数量、他们完成的任务总数以及他们的完成率百分比。目前,我有以下两个问题:

  • 从[Tasks]中选择Count(employee_id)作为TotalTasks,其中[Tasks]。employee_id= 报告![任务完成率]!txt_员工ID
  • 从[Tasks]中选择Count(employee_id)作为CompletedTasks,其中[Tasks]。employee_id=报告![任务完成率]!txt_employeeID和[Tasks].Completed=1

这两个都是必需的,还是有办法从一个查询中获得两个计数?此外,我将如何在报告中使用这些总数?报告的记录源设置为Employees表,以便可以列出所有记录源。我已经为每个总计准备好了文本框,但是在每个文本框的源代码中使用表达式生成器来实际显示查询结果时遇到了问题。我将其中一个文本框的源设置为=[qry_TotalTasksPerEmployee]![TotalTasks](通过expression builder),但它不断提示我输入[qry_TotalTasksPerEmployee]的值。有什么办法可以让它工作吗?

试着用你完成的价值的平均值。例如:

SELECT employee_id, -avg(Completed) FROM [Tasks] GROUP BY employee_id
正如@Neil所指出的,
-
之前的
-
是因为
true
存储为
-1


我不知道你对报告的意思是什么-在报告中放置查询结果应该很容易。

尝试取完成值的平均值。例如:

SELECT employee_id, -avg(Completed) FROM [Tasks] GROUP BY employee_id
正如@Neil所指出的,
-
之前的
-
是因为
true
存储为
-1


我不知道您对报告的意思是什么-在报告中放置查询结果应该很容易。

我并不真正喜欢msaccess报告,但由于“已完成”似乎是0或1,因此您应该进行以下查询 -编辑结果显示布尔值为1或-1,因此无法求和(已完成),但需要IIF()


请注意,这确实为没有任务的员工创建了一个按零划分的问题。您将不得不欺骗如何处理这些数据(排除、显示为0%或…)

我并不真正喜欢msaccess报告,但由于已完成的数据似乎是0或1,因此您应该进行以下查询 -编辑结果显示布尔值为1或-1,因此无法求和(已完成),但需要IIF()


请注意,这确实为没有任务的员工创建了一个按零划分的问题。你将不得不欺骗如何处理这些数据(排除、显示为0%或…)

回答很好,但你忘记了True是-1,因此你需要在某个地方否定该值。谢谢,这非常有效!不过,我希望我能在你的两个答案上都打上标记,因为我最终使用了Eddy建议的总和计算方法来计算完成任务的总数。唉,我还没有投票人所需的代表=(哦,对了!也许有人会同情一些Noob,给我们一些追加投票。在200 rep时,广告就少了。回答不错,但你忘了True是-1,所以你需要在某个地方否定这个值。谢谢,这很有效!不过,我希望我能标记你的两个答案,因为我最终使用了Eddy建议的总和计算完成任务的总数。唉,我还没有投票人所需的代表=(哦,对了!也许有人会同情一些Noob并给我们一些升级票。在200 rep时,广告就更少了。我本来想问一个问题,关于使用更新查询将主要任务标记为已完成/未完成,但我决定做些不同的事情,只是忘了删除这部分问题。我想问一个问题n关于使用更新查询将主要任务标记为已完成/未完成,但我决定做一些不同的事情,只是忘记删除问题的这一部分。