日期:2014-05-19  浏览次数:20449 次

150分求一个复杂的sql语句。
把我的问题简化成以下问题,实际上还有很多字段。
表CprHourly中有以下字段,
WorkedDate       Hour
2006/01/01           2
2006/01/02           7
2006/01/03           3
2006/01/04           5
.
.
.
2007/02/05           7

现在查询条件是两个日期,一个开始日期,如2006/10/15,结束日期2007/01/05,这些变量都会变的。
要求查询出来以下结果(90是2006/10/15到2006/10/31之间hour的总和   )
2006/10/15-2006/10/31       2006/11/01-2006/11/30           2006/12/01-2006/12/31           2007/01/01-2007/01/05
                90                                                                           100                                                                                   150                                                                 200

------解决方案--------------------
看看,顺便帮顶
------解决方案--------------------
呵呵,不会了,只能做到这一步:
select convert(varchar(10), min(workeddate), 101) + '- ' + convert(varchar(10), max(workeddate), 101) as date ,
sum(hour) as hour
from CprHourly
group by datepart(mm, workeddate)

date hour
--------------------- -----------
01/01/2007-01/22/2007 3904
10/15/2006-10/31/2006 474
11/01/2006-11/30/2006 2361
12/01/2006-12/31/2006 2648