【问题标题】:How to sum up with SQL values in previous rows in SELECT query in Access?如何在 Access 中的 SELECT 查询中与前几行中的 SQL 值相加?
【发布时间】:2015-05-02 02:12:55
【问题描述】:

我有一个名为“new_meetings”的表:

(ID_to, meetdate, amount)
-------------------------
(0, 01.07.2004, 3)
(0, 14.07.2004, 1)
(0, 11.02.2008, 5)
(1, 11.02.2008, 2)
(1, 12.02.2008, 1)

所以我需要和 sql 查询,这会给我结果:

(0, 01.07.2004, 3)
(0, 14.07.2004, 4)
(0, 11.02.2008, 9)
(1, 11.02.2008, 2)
(1, 12.02.2008, 3)

我使用 Access。 我尝试了以下方法:

SELECT meetdate, amount,
(SELECT SUM(*) FROM new_meetings WHERE n.ID_to = new_meetings.ID_to AND new_meetings.meetdate<=n.meetdate) as total
FROM new_meetings n

但是得到一个奇怪的错误:“无效的函数参数” 那我应该怎么做呢?

【问题讨论】:

    标签: sql select sum window-functions


    【解决方案1】:

    它被称为运行总计。在这里您可以找到完整的示例:
    How do I... Generate a running total in an Access query?
    Using MS Access to create a Running Total or a Cumulative Sum – Part 1 of 2

    SELECT meetdate, amount, 
        (SELECT SUM(amount)
         FROM new_meetings
         WHERE n.ID_to = new_meetings.ID_to
             AND new_meetings.meetdate<=n.meetdate) as total
    FROM new_meetings n
    

    【讨论】:

    • 谢谢,但我仍然收到此代码上的“无效函数参数”错误。
    • meetdate字段是什么数据类型?
    • 我试图重建您的问题,但没有成功。查询也有效。尝试修复和压缩您的数据库。在这个帖子中:stackoverflow.com/questions/13606383/sql-invalid-argument-error 它有帮助。
    • 好的,我无法将您的答案标记为正确,因为它对我不起作用,但我已经 +1。谢谢。
    【解决方案2】:

    知道了:

    Select m1.id_to, m1.meetdate, sum(m2.amount)
    From new_meetings m1
    LEFT Join new_meetings m2
    On m1.id_to=m2.id_to
    And m2.meetdate<= m1.meetdate
    Group by m1.id_to, m1.meetdate
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-04
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多