我有一套给定月份与每个月相关的小时数
DATE HOURS
8/1/2013 3
9/1/2013 8
10/1/2013 2
11/1/2013 4
12/1/2013 1
我需要返回过去所有内容的小时数,包括当前月份,在下面的例子中,从8月开始,总和只是8月。对于九月,我需要八月+九月
DATE HOURS SUM
8/1/2013 3 3
9/1/2013 8 11
10/1/2013 2 13
11/1/2013 4 17
12/1/2013 1 18
我不知道如何继续,因为每行的日期条件不同。
如果有人可以提供帮助,我们将不胜感激
答案 0 :(得分:1)
您可以使用相关子查询(或非等值连接,但我发现子查询更清晰)在大多数SQL方言中执行此操作:
select date, hours,
(select sum(t2.hours)
from t t2
where t2.date <= t.date
) as cum
from t;
许多SQL引擎也支持累积和函数,通常如下所示:
select date, hours sum(hours) over (order by date) as cum
from t