【问题标题】:Creating a Running total using MS Access SQL 2013使用 MS Access SQL 2013 创建运行总计
【发布时间】:2015-07-29 00:07:38
【问题描述】:

我正在尝试使用 Access SQL 创建一个运行总计我已经编写了以下 SQL 语句,但它不起作用。我的 SQL 不好,我正在努力学习是否有人可以帮助我。如果我写完后能在设计视图中看到它也很好。

SELECT
    SubQrySUMPermCashIN.Date
    ,SubQrySUMPermCashIN.PayeeID
    ,SubQrySUMPermCashIN.PermCashIn
    ,SubQrySUMPermCashIN.Year
    ,Sum(tblTest.PermCashIn) AS RunningTotal
FROM
    SubQrySUMPermCashIN
INNER JOIN
    SubQrySUMPermCashIN AS tblTest
ON
    SubQrySUMPermCashIN.Date = tblTest.Date
WHERE
    ((SubQrySUMPermCashIN.Date)>=[tblTest]![Date])
GROUP BY
    SubQrySUMPermCashIN.Date
    ,SubQrySUMPermCashIN.PayeeID
    ,SubQrySUMPermCashIN.PermCashIn
    ,SubQrySUMPermCashIN.Year;

【问题讨论】:

  • “不工作”,是对问题的糟糕描述。您是否没有得到任何结果、错误或结果不是您所期望的?请编辑您的问题并添加无效的内容。

标签: sql ms-access-2013


【解决方案1】:

我倾向于使用相关子查询进行此类计算:

SELECT spc.Date, spc.PayeeID, spc.PermCashIn, spc.Year,
       (SELECT SUM(sp2.PerCashIn)
        FROM SubQrySUMPermCashIN as spc2
        WHERE spc2.Date <= sp.Date
       ) as RunningTotal
FROM SubQrySUMPermCashIN as spc;

这会同时保存join 和外部group by。请注意,表别名的使用还使查询更易于编写和阅读。

【讨论】:

    【解决方案2】:

    我无权对此进行测试,但请尝试以下代码:

    SELECT
        SubQrySUMPermCashIN.Date
        ,SubQrySUMPermCashIN.PayeeID
        ,SubQrySUMPermCashIN.PermCashIn
        ,SubQrySUMPermCashIN.Year
        ,Sum(tblTest.PermCashIn) AS RunningTotal
    FROM
        SubQrySUMPermCashIN
    INNER JOIN
        SubQrySUMPermCashIN AS tblTest
    ON
        SubQrySUMPermCashIN.Date >= tblTest.Date
    GROUP BY
        SubQrySUMPermCashIN.Date
        ,SubQrySUMPermCashIN.PayeeID
        ,SubQrySUMPermCashIN.PermCashIn
        ,SubQrySUMPermCashIN.Year;
    

    注意:您的 WHERE 与您的 JOIN ... ON ... 相矛盾;对其进行了修改,使ON 包含正确的定义,并且不再需要WHERE

    【讨论】:

    • 所以我正在创建一个相等和不相等的连接,我将连接更改为 ' SubQrySUMPermCashIN.Date >= tblTest.Date AND SubQrySUMPermCashIN.Year = tblTest.Year ' 所以我也可以按年份求和
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多