使用相同的ID列递增地对列值求和

Mar*_*ase 6 sql sql-server-2008

我在查询SQL Server 2008时遇到了麻烦,我搜索了互联网,但我没有发现任何内容,或者它没有给我任何关于如何操作的想法.

使用Northwind数据库,我需要查询表OrderDetails并选择OrderID和UnitPrice显示这样的东西,

OrderID   -    UnitPrice
------------------------
10248     -     14.00
10248     -     9.80
10248     -     34.80
10249     -     18.60
Run Code Online (Sandbox Code Playgroud)

结果应该是:

OrderID   -    UnitPrice
------------------------
10248     -     14.00
10248     -     23.80
10248     -     58.6
10249     -     18.60
Run Code Online (Sandbox Code Playgroud)

Tec*_*hDo 5

请检查:

;with T as(
    select 
        *, 
        ROW_NUMBER() over (partition by OrderID order by OrderID) RNum
    from YourTable
)
select 
    *, 
    (select sum(UnitPrice) from T b where b.OrderID=a.OrderID and b.RNum<=a.RNum) CumTotal
From T a
Run Code Online (Sandbox Code Playgroud)

尝试使用SQL Fiddle