DB2数据库查询语句中递归相加

如上图:第四列(累计值),第五列(上月值)
第四列第1行的值等于16
第四列第2行的值等于18(16+2)
第四列第3行的值等于96(16+2+78)
类推……行数可能是有成千上万行
---------
第五列第1行的值等于0
第五列第2行的值等于16
第五列第3行的值等于2
第五列第4行的值等于78
求SQL怎么写,数据库是DB2

第1个回答  推荐于2016-05-06

不知道你那个查询, 能不能加一个  Row_Number  的处理。

或者有什么  递增的数值在里面的。

 

如果有的话,  可以参考下面这种处理方式:

测试数据.
CREATE TABLE temp (
  year    INT,  
  salary  INT
);
INSERT INTO temp VALUES(2000, 1000);
INSERT INTO temp VALUES(2001, 2000);
INSERT INTO temp VALUES(2002, 3000);
INSERT INTO temp VALUES(2003, 4000);

预期要求结果:
year salary 
2000 1000
2001 3000
2002 6000
2003 10000
 
SELECT  
  year,
  (SELECT SUM(salary) FROM temp  t2  WHERE t2.year <= temp.year) AS salary
FROM
  temp;

year salary
2000 1000
2001 3000
2002 6000
2003 10000

本回答被提问者采纳