查询字段中的 Dsum 函数无法正常工作

Dsum Function in Query Field not working properly

我有一个基于日期的查询 returns 两个字段,周结束日期和 L2N,我想添加第三个字段,提供 L2N 字段的滚动总计。我试过使用 DSum 如下:

RunL2N: DSum("[L2N]","Occupied Apts & L2N", "Week Ending Date=" & "'" & [Week Ending Date] & "'")

上面代码中,L2N是我要求和的字段,Occupied Apts & L2N是returns字段的查询。该查询要求提供周结束日期,然后提供等于或超过给定周结束日期的所有记录。

这没用。我的目标是让 RunL2N 字段显示每条记录的 L2N 字段的滚动总数。换句话说,如果查询returns条记录,我希望它显示L2N字段结果,然后显示Run2L2N字段,它将上面记录的L2N字段和当前记录的L2N字段相加。

所以如果查询 returns L2N 字段中的 1,然后下一条记录的 3,下一条记录的 5,最后一条记录的 7,我想要 RunL2N 字段第一条记录显示 1,下一条记录显示 4,下一条记录显示 9,最后一条记录显示 16。

由于字段名称包含空格,因此将其括起来:[Week Ending Date]

假设它是 Date/Time 类型,在日期值前后使用 # 分隔符。

最后,我认为您想从 [Week Ending Date] <= 当前行中日期的行中获取总和。

DSum("[L2N]","Occupied Apts & L2N", "[Week Ending Date]<=" & Format([Week Ending Date], "\#yyyy-m-d\#"))

但是,如果您使用相关子查询而不是 DSum() 来计算 L2N 的 运行 和,您就不必费心了关于日期值的分隔符。

SELECT
    y1.[Week Ending Date],
    y1.L2N,
    (
        SELECT Sum(y2.L2N)
        FROM [Occupied Apts & L2N] AS y2
        WHERE y2.[Week Ending Date] <= y1.[Week Ending Date]
    ) AS RunL2n
FROM [Occupied Apts & L2N] AS y1;