6

我在 SQL Server 2008 中查询时遇到问题,我搜索了互联网,但我什么也没找到,或者它没有给我任何关于如何做的想法。

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

OrderID   -    UnitPrice
------------------------
10248     -     14.00
10248     -     9.80
10248     -     34.80
10249     -     18.60

结果应该是:

OrderID   -    UnitPrice
------------------------
10248     -     14.00
10248     -     23.80
10248     -     58.6
10249     -     18.60
4

2 回答 2

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

在SQL Fiddle中尝试

于 2013-05-14T05:04:42.543 回答
-2

可以参考以下:

SELECT t1.id,
       t1.unitprice,
       SUM(t2.unitprice) AS SUM
FROM t t1
INNER JOIN t t2 ON t1.id >= t2.id
GROUP BY t1.id,
         t1.unitprice
ORDER BY t1.id

演示:

SQLFIDDLE 演示

于 2013-05-14T04:54:20.877 回答