MS Access 按日期累积总和?

Posted

技术标签:

【中文标题】MS Access 按日期累积总和?【英文标题】:MS Access cumulative sum by date? 【发布时间】:2014-03-26 13:17:02 【问题描述】:

我正在尝试类似的东西

Select myTable.eDate, Sum(myTable.revenue) from MyTable 
GROUP BY MyTable.eDate HAVING (((MyTable.eDate) >= #1/1/2014#))

我试图让它在所有日期按顺序显示“1 月 1 日的总收入是这样的,1 月 2 日的总收入是这样的,1 月 3 日的总收入是这样的,等等”。

一种“滚动累积和”,如果有意义的话。

注意:MyTable 中有 1 月 1 日之前的电子日期/收入,所以我也试图限制所有内容,因此它甚至不会查看 1 月 1 日之前的行。

我也尝试过 DSum,但也没有用。

我也试过

select
a1.eDate,
(
select Sum(a2.revenue)
FROM MyTable as a2
where
a2.eDate <= a1.eDate
) as RunningTotal
FROM MyTable as a1

【问题讨论】:

仅供参考,根据您的要求,您最好不要将其作为 SQL 查询执行,而是使用 Access 报告为您执行此操作 - 报告具有运行总功能,而使用 Access SQL 您有点必须与之抗争才能让它做你想做的事。 【参考方案1】:

对不起,我没有足够的代表发表评论。

我认为您正在尝试做的是总和

SELECT (SELECT sum(revenue) from myTable a2
where a1.edate >= a2.edate)
as RunningSumField1,
edate from myTable as a1 
group by a1.edate
order by a1.edate

试试这个链接:

MS Access 2010 Running Total in Query

【讨论】:

我没有名为“id”的字段,我正在尝试按日期获取累积总和 我再次更新了我的答案,删除了 id 列 - 这应该可以解决问题 我必须说“myTable a2”还是“myTable as a2”? 确实有效,谢谢!我想知道为什么我的原始代码不起作用。它们看起来几乎一样,只是你的最后有一个分组/排序 太好了 - 乐于助人。仅供参考,您正在进行总计,因此您需要对数据进行排序,以便您可以知道如何按日期顺序获取总和,group by 子句允许您每天求和

以上是关于MS Access 按日期累积总和?的主要内容,如果未能解决你的问题,请参考以下文章

MS Access:按开始日期和结束日期之间每个月的月份分组

MYSQL按日期累积总和[重复]

查询不使用 MS-Access 中的日期条件进行拉取

按日期分组的 MySQL 累积总和

如何将总和存储到 MS Access 表中

MS Access 对组的总和,但不是对细节的总和