在数据表中用sql实现累计计算

来源:互联网 发布:clearlove知乎 编辑:程序博客网 时间:2024/04/24 18:08
如何按时间求累计值如下表所示  日期 数值 2005-5-1 2.4 2005-5-2 2 2005-5-3 5 2005-5-4 3.5

要实现如下结果:

 日期 数值 累计 2005-5-1 2.4 2.4 2005-5-2  24.4  2005-5-3  5 9.4 2005-5-4  3.5 12.9

使用如下sql语句就能实现以上功能了

--累计计算
SELECT aa.日期, aa.数值, SUM(lj.数值) AS 累计
FROM 累积 lj INNER JOIN
          (SELECT *
         FROM 累积) aa ON lj.日期 <= aa.日期
WHERE (aa.日期 <= '2005-05-04')   --日期可以变成时间段
GROUP BY aa.日期, aa.数值
ORDER BY aa.日期

****************************

--建临时表,建个标识
select identity(int,1,1) as ID,* into #t from 表

select a.*,累计=(select sum(数量) from #t where id<=a.id)
from  #t a