在MS Access中将多行串联成一行并计算总和

时间:2019-07-12 19:50:03

标签: ms-access access-vba

我试图计算每个任务列表的小时数,以便仅生成一行给出所有信息的行。我已经在Access中输入了一个excel文件并生成了以下必需信息。

Task List ------- Hours --- Progress --- Time Logged --- Billable Hours 
General Task ------10-----------0------------0------------------0----------
General Task -------8-----------0------------8-----------------20----------
General Task -------4----------100----------10------------------0----------
General Task -------0----------100----------20------------------0----------
Project Initiation -22----------25----------24------------------0----------
Project Initiation -12----------25----------12------------------0----------
Project Initiation -16----------25----------16------------------0----------
Project Initiation -4-----------25-----------8------------------0----------
Requirements -------16---------100-----------0------------------0----------
Requirements -------14----------50----------44-----------------14----------
Requirements --------5----------75----------32-----------------12----------
Requirements --------0-----------0-----------8------------------0----------
Design--------------240----------0-----------0------------------0----------
Design -------------120----------0-----------0------------------0----------
Design -------------120----------0-----------0------------------0----------
Prototype------------24----------0-----------0------------------0----------
Prototype -----------42----------0-----------0------------------0----------
Prototype -----------32----------0-----------0------------------0----------
Prototype -----------16----------0-----------0------------------0----------
Prototype -----------12----------0-----------0------------------0----------
Testing -------------16----------0-----------0------------------0----------
Testing -------------24----------0-----------0------------------0----------
Testing --------------8----------0-----------0------------------0----------
Testing --------------0----------0-----------0------------------0----------
Testing --------------0----------0-----------0------------------0----------

我想得出最终的输出,像这样!

每个任务列表加上小时,记录的时间和计费时间。进度将被汇总并除以条目数(例如,需求进度为(100 + 50 + 75 + 0)/4=56.25进度总计)

Task List --------- Hours --- Progress --- Time Logged --- Billable Hours 
General Task --------22---------50------------38---------------20---------- 
Project Initiation --54---------25------------60----------------0----------
Requirements --------35-------56.25-----------84---------------26----------
Design--------------480---------0--------------0----------------0----------
Prototype-----------126---------0--------------0----------------0----------
Testing -------------48---------0--------------0----------------0----------

我尝试查看Concatenating multiple rows into single line in MS Access 并在那里处理一些代码,但无法使其正常工作...这是我开始的地方,但收到错误消息“ SELECT语句包含保留字或自变量...”

1 个答案:

答案 0 :(得分:1)

串联多个行不适合此要求。使用汇总查询:

SELECT [Task List], Sum(Hours) AS SumHrs, Avg(Progress) AS AvgProg, 
      Sum([Time Logged]) AS SumTime, Sum([Billable Hours]) AS SumBill 
FROM table 
GROUP BY [Task List];

可以改为使用原始表作为源来构建报告,并使用具有汇总计算的报告排序和分组功能。报告允许显示详细记录以及摘要数据