SQL服务器:如何将列值分别加到下一列

SQL Server : How to sum respectively column value to next column

我关注table...

code    date           amount        balamt
   -------------------------------------
1    2015—03—01         10            
1    2015—03—02         15
1    2015—03—03         20
1    2015—03—04         12
2    2015—03—05         15 
2    2015—03—01         10            
2    2015—03—02         20
2    2015—03—03         10              

我想要这样的结果...

code    date           amount        balamt
     -------------------------------------
1    2015—03—01         10               10
1    2015—03—02         15               25
1    2015—03—03         20               45
1    2015—03—04         12               57
2    2015—03—05         15               15
2    2015—03—01         10               25
2    2015—03—02         20               45
2    2015—03—03         10               55

我也想要代码组智能数据

您可能想尝试这样的事情(这还没有经过语法检查,应该被视为伪代码指南而不是明确的答案):

SELECT
   t1.DateColumnName
   , t1.AmountColumnName
   , SUM(t2.AmountColumnName)
FROM
   TableName t1
   LEFT JOIN TableName t2 ON t2.DateColumnName <= t1.DateColumnName
GROUP BY
   t1.DateColumnName
   , t1.AmountColumnName

可能有用的文章:

这可以通过使用 CROSS JOINSUM 来完成。尝试这样的事情,

declare @table table(date date, amt decimal(18,2))
insert into @table
values
('2015-03-01', 10),
('2015-03-02', 15),
('2015-03-03', 20),
('2015-03-04', 12),
('2015-03-05', 10)


SELECT t.date, t.amt, SUM(t1.amt) as balamt
FROM @table t 
CROSS JOIN
@table t1
WHERE t1.date <= t.date
GROUP BY t.date, t.amt
ORDER BY balamt

Sql Fiddle Demo

有关计算上一行值之和的更多信息,请参阅Code Project中的这篇文章。