日期:2014-05-18 浏览次数:20702 次
create table gxsww
(begin_date datetime, end_date datetime, sum_value int)
insert into gxsww
select '2011-01-01', '2011-01-05', 100 union all
select '2011-01-08', '2011-01-15', 200
select
dateadd(d,b.number,a.begin_date) 'date_value',
a.average 'avg_value'
from 
(select begin_date,datediff(d,begin_date,end_date) d,
sum_value/(datediff(d,begin_date,end_date)+1) average
from gxsww) a
inner join master.dbo.spt_values b
on b.[type]='P' and b.number between 0 and a.d
date_value    avg_value
------------ -----------
2011-01-01     20
2011-01-02     20
2011-01-03     20
2011-01-04     20
2011-01-05     20
2011-01-08     25
2011-01-09     25
2011-01-10     25
2011-01-11     25
2011-01-12     25
2011-01-13     25
2011-01-14     25
2011-01-15     25
(13 row(s) affected)