2

我正在尝试将电子表格复制到数据库中,但我很困惑如何只对当前行上方的行求和,就像我在 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%
4

1 回答 1

2

诀窍是您想使用子查询来识别所有先前的行。

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

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

于 2012-08-06T20:13:28.717 回答