如何使用子查询的别名来获取运行总计?

时间:2018-03-10 00:54:22

标签: sql ms-access running-total

我有3个表UNION用于计算某些余额,我需要获得该余额的SUM,但我不能使用PARTITION OVER,因为我必须这样做使用可在Access中工作的SQL查询。 我的问题是我不能在别名子查询上使用JOIN,它将无效。

如何在JOIN中使用别名来获取总计?

或获取SUM的{​​{1}}的任何其他方式,因为它在Access中不存在。 到目前为止,这是我的代码:

PARTITION OVER

1 个答案:

答案 0 :(得分:1)

您可以为3个表中的Query1保存查询(我们将其命名为UNION),然后创建另一个查询,返回第一个查询中的每一行并计算行的总和在它之前(可选地检查它们是否在同一组中)。

它应该是这样的:

SELECT *, (
    SELECT SUM(Value) FROM Query1 AS b 
    WHERE b.GroupNumber=a.GroupNumber
    AND b.Position<=a.Position
) AS RunningSum
FROM Query1 AS a

但是,在报告中这样做效率更高。