我自己对相关子查询有疑问。这是我认为更容易的 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
我们以这种方式创建函数,以便访问智能感知。这是一种强大的技术,我也用它来包装任何访问表单参数的调用。要在查询中查找函数,请右键单击查询列的顶部并选择构建。在表达式元素下的构建向导中选择函数,然后选择您的数据库。将出现平均订单和您进行的任何其他公共功能。或者只是输入它。
然后你得到:
![在此处输入图像描述](https://i.stack.imgur.com/CKvVS.jpg)
![在此处输入图像描述](https://i.stack.imgur.com/JJPZ8.jpg)
二月有28天。我们不使用 # 表示 DateOrders,因为在字符串中 # 表示日期。要获得累积平均值,只需选择一个荒谬的早期日期或制作另一个没有 [NumberofPriorDays] 的函数。