HELP!!!!HELP!!!!HELP!!!!时间紧要!!!!!!!!!!!!!HELP!!!!HELP!!!!HELP!!!!
HELP!!!!
DECLARE @BeginTime DATETIME
DECLARE @EndTime datetime
SET @BeginTime = '2006-1-1 0:0:0'
SET @EndTime = '2006-2-1 0:0:0'
set nocount on
--定义统计的月份差值
declare @variable int
set @variable = datediff(month,@BeginTime,@EndTime)
--定义变化从统计起始到结束的时间
declare @Begin datetime
declare @End datetime
set @Begin = convert(datetime,(left(convert(varchar,@BeginTime,2),6)+'01'))
set @End = convert(datetime,(left(convert(varchar,@EndTime,2),6)+'01'))
declare @T table(任务编码 char(20),编码 int)
------------------------------------------------------------------------------0
if (select @variable) >= 0
begin
select 任务编码,编码 = identity(int)
into #temp0
from Ttaskview
where 生成任务时刻>= @Begin and 生成任务时刻<=(dateadd(month,1,@begin))
insert into @T
select * from #temp0
drop table #temp0
end
------------------------------------------------------------------------------1
if (select @variable) >= 1
begin
select 任务编码,编码 = identity(int)
into #temp1
from Ttaskview
where 生成任务时刻>=(dateadd(month,1,@begin)) and 生成任务时刻<=(dateadd(month,2,@begin))
insert into @T
select * from #temp1
drop table #temp1
end
------------------------------------------------------------------------------2
if (select @variable) >= 2
begin
select 任务编码,编码 = identity(int)
into #temp2
from Ttaskview
where 生成任务时刻>= (dateadd(month,2,@begin))and 生成任务时刻<=(dateadd(month,3,@begin))
insert into @T
select * from #temp2
drop table #temp2
end
------------------------------------------------------------------------------3
if (select @variable) >= 3
begin
select 任务编码,编码 = identity(int)
into #temp3
from Ttaskview
where 生成任务时刻>= (dateadd(month,3,@begin))and 生成任务时刻<=(dateadd(month,4,@begin))
insert into @T
select * from #temp3
drop table #temp3
end
select * from @T
请求改进,优化这个长长的垃圾语句~~~~
我自己写的,因为只能被动的计算差值为若干月的表!!!
而且十分的慢,呵呵!!!