Sql 如何在MS Access查询中获取运行总计

Sql 如何在MS Access查询中获取运行总计,sql,ms-access,Sql,Ms Access,我需要有关如何在MS Access SQL查询生成器上编写此代码的帮助 获得如下所示的总积分 对比当前日期早的pts求和,然后检查是否存在REDUCT pts,并将其减去仅适用于比REDUCT pts早的pts,如果REDUCT大于当前运行,则返回0 我不知道怎样才能得到这份工作 编辑问题: 我只需要将11月23日的运行时间设置为1,而不是0.5,一种方法是通过相关子查询: SELECT [Emp ID], Date, Pts, Reduce, (SELECT IIF(SUM(I

我需要有关如何在MS Access SQL查询生成器上编写此代码的帮助

获得如下所示的总积分 对比当前日期早的pts求和,然后检查是否存在REDUCT pts,并将其减去仅适用于比REDUCT pts早的pts,如果REDUCT大于当前运行,则返回0

我不知道怎样才能得到这份工作

编辑问题:


我只需要将11月23日的运行时间设置为1,而不是0.5,一种方法是通过相关子查询:

SELECT
    [Emp ID], Date, Pts, Reduce,
    (SELECT IIF(SUM(IIF(t2.Pts IS NULL, 0, t2.Pts) -
                    IIF(t2.Reduce IS NULL, 0, t2.Reduce)) < 0, 0,
                SUM(IIF(t2.Pts IS NULL, 0, t2.Pts) -
                    IIF(t2.Reduce IS NULL, 0, t2.Reduce))
     FROM yourTable t2
     WHERE t2.Date <= t1.Date) Running
FROM yourTable t1;

您好,谢谢您的精彩代码,只有一个问题,尽管如果pts和reduce的值相同,我不会减法date@AkamiKurai你的问题从来没有暗示过这样的逻辑。编辑你的问题,然后告诉我们真正的问题是什么。这个查询非常有效,我只需要让它也扣除pts和buy在同一数据中的运行。示例第1行是pts,第2行是回购,但两者具有相同的特性dates@AkamiKurai我的查询已经记录了每行上的Pts和Reduce之间的差异。也许你可以提供一些数据?那么你是说你希望在给定日期的运行总数包括当天之前的点数,减去当天之前但不包括当天的减少点数?正如你所看到的,11月17日的运行数据已经是0,因此11月23日的运行总数应该是1,11月24日的运行总数应该是3。谢谢您,先生,您的时间您已经更改了一些数据,我不明白现在的问题是什么。如果你能澄清你是否在舍入你的数据,以及流动余额是否会变为负数,那将很有帮助。不,流动数据不能是负数。如果回购大于运行,则运行数据将为零,运行设置为零后的下一个点将为实际点示例11月17日的运行点已为0,因此11月23日的运行应为1,而不是0.5,我误读了流程我的错问题不在11月24日的回购上,因为11月23日的pts不正确,所以我认为11月24日的数据不正确。我恐怕还不清楚我需要如何更改我的查询。