如何创建一个查询来提供累计总数?
我有一个包含以下列的表:reportDate DATETIME 和损失 CURRENCY,当然还有 ID 列。
如何编写一个查询来返回一个包含损失列的运行总计的表?每个日期都会有多个条目,所以我认为他们需要为每个日期使用 Sum() 。我知道这与 DSum 函数有关,但我仍然迷失在这个函数上。 我认为,它应该看起来像
Month Losses Cum
----- ------ -----
Jan $3,000 $3,000
Feb $2,000 $5,000
Mar $1,500 $6,500
具有非 Access 特定的 sql 语句对我来说是最有帮助的。但所有解决方案均受到赞赏。感谢您的帮助。
I have a table with the following columns: reportDate DATETIME and losses CURRENCY and of course the ID column.
How do I write a query that will return a table with a running total of the losses column? Each date will have multiple entries so i think they will need use Sum() for each date. I know this has to do with the DSum function but im still lost on this one. It should look something like
Month Losses Cum
----- ------ -----
Jan $3,000 $3,000
Feb $2,000 $5,000
Mar $1,500 $6,500
Having a sql statement that's not Access specific would be the most help to me, I think. But all solutions are appreciated. Thanks for the help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在您问题的编辑历史记录中找到了表和字段名称,因此在此答案中使用了这些名称。您没有提供 record_matYields 示例数据,因此我创建了自己的数据并希望它合适:
首先,我创建了 qryMonthlyLosses。以下是 SQL 和输出:
我使用第一个查询创建了另一个查询,qryCumulativeLossesByMonth:
最后,我使用 qryCumulativeLossesByMonth 作为查询中的数据源,该查询将输出转换为匹配您请求的格式。
您可能可以使用子查询而不是单独的命名查询将其修改为单个查询。我使用这种逐步的方法是因为我希望它更容易理解。
编辑:我使用 MonthName() 函数返回了全名。如果您需要缩写的月份名称,请将 True 作为第二个参数传递给该函数。其中任何一个都应该有效:
I found table and field names in the edit history of your question, so used those names in this answer. You didn't provide record_matYields sample data, so I created my own and hope it is suitable:
First I created qryMonthlyLosses. Here is the SQL and the output:
I used that first query to create another, qryCumulativeLossesByMonth:
Finally I used qryCumulativeLossesByMonth as the data source in a query which transforms the output to match your requested format.
You could probably revise this into a single query using subqueries instead of the separate named queries. I used this step-wise approach because I hoped it would be easier to understand.
Edit: I returned the full name with the MonthName() function. If you want the abbreviated month name, pass True as a second parameter to that function. Either of these should work:
此页面看起来很适合您:
http://support.microsoft.com/kb/290136
仅供参考,我之前针对SQL Server写了如下T-SQL:
结果:
This page looks good for you:
http://support.microsoft.com/kb/290136
FYI, I wrote the following T-SQL against SQL Server before:
The result:
这将在一个 SQL 中为您完成,而无需使用临时表
This will do it for you in one SQL without using temporary tables