查询字段中的 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 函数无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章