2013-07-13 85 views
0

我有一组给定月份与一些相关的各个它与基于返回值

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

是否使用的是RDBMS?你也可以搜索'sql running total'来查找一些例子。 –

回答

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 
+0

谢谢戈登,这正是我一直在寻找的 –