Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL Server:如何将各个列的值求和到下一列_Sql Server 2008 - Fatal编程技术网

Sql server 2008 SQL Server:如何将各个列的值求和到下一列

Sql server 2008 SQL Server:如何将各个列的值求和到下一列,sql-server-2008,Sql Server 2008,我有下表 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

我有下表

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

我还需要代码组方面的数据

您可能希望尝试类似的方法(这还没有经过语法检查,应该更多地作为伪代码指南,而不是明确的答案):

选择
t1.DateColumnName
,t1.AmountColumnName
,总和(t2.AmountColumnName)
从…起
表名t1

在t2.DateColumnName上左连接TableName t2这可以通过使用
交叉连接
求和
来完成。试试这样的

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
declare@table表格(日期,金额小数(18,2))
插入@table
价值观
('2015-03-01', 10),
('2015-03-02', 15),
('2015-03-03', 20),
('2015-03-04', 12),
('2015-03-05', 10)
选择t.date、t.amt、SUM(t1.amt)作为余额
来自@table t
交叉连接
@表t1

t1.date你已经试过什么了我还建议查看聚合函数,如
SUM
,并在日期列小于其自身的情况下连接到其自身。我想要结果组方面的slcode
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