微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 ACCESS QUERY 中创建过去 7 天、30 天累积平均值的滚动/移动平均值?

如何解决如何在 ACCESS QUERY 中创建过去 7 天、30 天累积平均值的滚动/移动平均值?

我的查询名称: 每日总订单汇总

我的输入 [2 列]: business_date,# 每日订单

我需要这 3 列作为计算输出: Orders# (7 days) Average,Orders# (30 Days) Average,Orders# (Acuum Average) [即从第一天到现在]


我已尽力为如何在 Microsoft Access 查询中执行移动/滚动平均找到明确的答案,但不幸的是,我无法让它为我工作。因此,我决定将我的请求放在这里,看看是否有人会让我朝着正确的方向开始处理我的文件和任务。

解决方法

我自己在处理相关子查询时遇到了麻烦。这是我认为更简单的 VBA/Access 解决方案。

首先通过单击菜单上的创建并选择模块(一直到右侧)将代码模块添加到您的数据库。 然后创建一个公共函数,如:

Public Function AverageOrders(CurrentDate As Date,NumberofPriorDays As Integer) As Integer
AverageOrders = DSum("DailyOrders","MyTable","business_date BETWEEN #" & CurrentDate & "# AND #" & DateAdd("d",-NumberofPriorDays,CurrentDate) & "#")
End Function

我们以这种方式创建函数,以便访问智能感知工作。这是一种强大的技术,我也用它来包装任何访问表单参数的调用。要在查询中查找函数,请右键单击查询列的顶部并选择构建。在表达式元素下的构建向导中,选择函数,然后选择您的数据库。平均订单和您所做的任何其他公共功能都会出现。或者直接输入。

然后你得到:

enter image description here

enter image description here

二月有 28 天。我们不将 # 用于 DateOrders,因为在字符串中 # 表示日期。要获得累积平均值,只需选择一个荒谬的早期日期或在没有 [NumberofPriorDays] 的情况下创建另一个函数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。