日期:2014-05-17 浏览次数:20493 次
create table cb
(城市 varchar(6),
金额 int,
日期 varchar(6))
insert into cb
select '广州', '20000', '06-20' union all
select '广州', '30000', '06-22' union all
select '广州', '23000', '06-24' union all
select '广州', '5000', '06-28'
select isnull(b.城市,'广州') '城市',
isnull(b.金额,0) '金额',
a.qd '日期'
from
(select right(convert(varchar,dateadd(d,number,
(select '2012-'+min(日期) from cb)),23),5) 'qd'
from master.dbo.spt_values
where [type]='P' and number<=
(select datediff(d,'2012-'+min(日期),'2012-'+max(日期)) from cb)
) a
left join cb b on a.qd=b.日期
/*
城市 金额 日期
------ ----------- ----------
广州 20000 06-20
广州 0 06-21
广州 30000 06-22
广州 0 06-23
广州 23000 06-24
广州 0 06-25
广州 0 06-26
广州 0 06-27
广州 5000 06-28
(9 row(s) affected)
*/