create proc proc_Mdata @where varchar(500),--条件 @msetdate datetime--当天时间 as begin --声明空白数据 DECLARE @tbnull TABLE(id INT,[time] DATETIME,[count] INT) --递增变量 DECLARE @day INT SET @day=0 --当月天数 DECLARE @days INT SELECT @days=day(dateadd(mm,1,@msetdate)-day(@msetdate)) --循环插入空白数据 WHILE (@day<@days) BEGIN SET @day=@day+1; declare @timeloop datetime; set @timeloop=CONVERT(DATETIME,CONVERT(VARCHAR(8),@msetdate,120)+RIGHT('00'+@day,2)); declare @num int; --select @num=count(*) from TB where (CONVERT(VARCHAR(10),[time],120))=@timeloop SELECT @num=COUNT(AID) FROM (SELECT AID, MODE, created FROM Bs_RCode GROUP BY AID, MODE, created HAVING (MODE = @where) AND (CONVERT(VARCHAR(10),[created],120))=@timeloop) DERIVEDTBL INSERT INTO @tbnull(id,[time],count) VALUES(1,@timeloop,@num) END; select * from @tbnull end