有没有办法对当前行上方的行求和

时间:2012-08-06 19:49:58

标签: sql ms-access

我正在尝试将电子表格复制到数据库中,我很难理解如何只对当前行上方的行进行求和,就像我在excel中所做的那样。例如,一列的公式如下:

=SUM($B$9:$B9)/SUM($E$9:$E9)
=SUM($B$9:$B10)/SUM($E$9:$E10)
=SUM($B$9:$B11)/SUM($E$9:$E11) 

....等等。

我需要以某种方式在我的选择qry中重现这个公式,但不确定如何?

SELECT Column1,Column2, SUM(Column1) + SUM(Column2) as Expr1
From tblTest
Group By Column1,Column2

有什么想法吗?

    Col1    Col2    Col3  Total     Col1/Total      Trying to get this               
    7       0       3     10         70.00%          70.00%
    1       0       1                100.00%         72.73%
    2       0       4     6          33.33%          58.82%
    3       1       1     5          60.00%          59.09%

1 个答案:

答案 0 :(得分:2)

诀窍是你想使用一个子查询来识别所有以前的行。

SELECT  ID, 
        (
            SELECT SUM(ValueColumn)
            FROM    Test T2
            WHERE T2.ID <= T1.ID
        ) RunningSum
FROM
        Test T1
ORDER BY
        T1.ID

这会奏效。如果您有一个大型数据集,您可能只想选择数据并在应用程序中进行计算,因为您可以保持运行总和,因为您可以比此查询更有效地循环遍历数据。