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

Posted

技术标签:

【中文标题】查询字段中的 Dsum 函数无法正常工作【英文标题】:Dsum Function in Query Field not working properly 【发布时间】:2015-06-02 18:34:51 【问题描述】:

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

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

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

这行不通。我的目标是让 RunL2N 字段显示每条记录的 L2N 字段的滚动总数。也就是说,如果查询返回多条记录,我希望它显示 L2N 字段结果,然后显示 Run2L2N 字段,它将上面记录的 L2N 字段与当前记录相加。

因此,如果查询在 L2N 字段中返回 1,下一条记录返回 3,下一条记录返回 5,最后一条记录返回 7,我希望 RunL2N 字段在第一条记录中显示 1记录,下一个记录为 4,下一个记录为 9,最后记录为 16。

【问题讨论】:

【参考方案1】:

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

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

最后,我认为您想从当前行中[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;

【讨论】:

虽然我无法让您的 DSum 函数正常工作,但子查询运行良好。感谢您的帮助!

以上是关于查询字段中的 Dsum 函数无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

当字段中有尾随零时,使用联接的查询无法正常工作

查询中的 WHERE 子句在 CodeIgniter 3 中无法正常工作

Access 中的组合过滤无法正常工作

动态生成的表单无法正常工作

Sql 查询无法正常工作

使用表单域的 DSUM 函数