Sql 在Access中的类别内运行总计

Sql 在Access中的类别内运行总计,sql,ms-access,Sql,Ms Access,我正在尝试计算Microsoft Access中的运行总数,可能真的需要一些帮助 基本上,下表包含三列: 项目 库存头寸 倍数 我需要一个四列,我们称之为OnhandAgg,它对每个项目进行运行总计计算 物料中的第一条记录应以库存位置+倍数开始运行总计计算。此后,项目中的剩余记录应为最后记录值+倍数的运行总计计算 当循环遍历一个项目内的所有记录时,应重新启动正在运行的总计 最终结果应该与此类似-我添加了一个自动编号,它也应该是第一个表的一部分 此输出可以通过报告轻松生成。它在大型数据集上的执行速

我正在尝试计算Microsoft Access中的运行总数,可能真的需要一些帮助

基本上,下表包含三列:

项目 库存头寸 倍数 我需要一个四列,我们称之为OnhandAgg,它对每个项目进行运行总计计算

物料中的第一条记录应以库存位置+倍数开始运行总计计算。此后,项目中的剩余记录应为最后记录值+倍数的运行总计计算

当循环遍历一个项目内的所有记录时,应重新启动正在运行的总计

最终结果应该与此类似-我添加了一个自动编号,它也应该是第一个表的一部分


此输出可以通过报告轻松生成。它在大型数据集上的执行速度可能比嵌套查询或域聚合函数快

在项目上设置分组,包括绑定到标题中InventoryPos的名为tbxIP的文本框

在详细信息部分,放置一个名为tbxRS的文本框,该文本框绑定到Multiple,RunningSum设置为OverGroup can set Visible=No

在“详细信息”部分中,放置表达式为=tbxIP+tbxRS的文本框

若您确实想要表的外观,可以包括Item和InventoryPos的文本框以及Multiple in Detail部分,并将Item Group header设置为不可见,并将标签放置在页眉中作为列标题


我说不出它的效率,但它是有效的:

select t.*,
(select sum(Multiple) from tablename where Item = t.Item and [No] <= t.[No]) +
(select InventoryPos from tablename where Item = t.Item and [No] = (
  select min([No]) from tablename where Item = t.Item)
)
from tablename as t

记录应如何排序?该表是否包含可用于排序记录的主键?您尝试了什么?向我们展示您的代码。我已尝试从此站点实现dsum语法,但无法使dsum逻辑正常工作:我添加了一个具有以下语法的额外列:OnhandAgg:dsum“[Multiple]”;“采购线”;“[Item]=”&[Item]&“’和[No]Lee Mac-我添加了一个列号。但总的来说,它应该根据Item进行排序。第16行不应该显示OnhandAgg值190吗?