create table ta(startdate datetime,enddate datetime,[name] char(2)) --创建表
insert ta select '2007-1-1','2007-5-30','aa' --插入数据
go
select top 31 identity(int,0,1) as id into # from sysobjects a,sysobjects b --这个我也不知道(郁闷) 只知道是临时表
select convert(char(7),dateadd(mm,b.id,startdate),120) as [date]
,[name]
from ta a
left join # b on dateadd(mm,b.id,startdate) < a.enddate --临时表分组
/*
date name
------- ----
2007-01 aa
2007-02 aa
2007-03 aa
2007-04 aa
2007-05 aa
*/
drop table ta ,#
这个不是我写的 是优快云 里面 特别有用