December 12, 2015 at 8:44 am
I want to combine four while loops into,any help greatly appreciated
drop table #cad
/*GETTING THE REQUIRED MONTHS FOR PERFORMING THE FURTHER CALCULATIONS*/
SELECT [FINALEID],ResourceHome,[ROLLOFFDATE] ,PROJECT,CLIENT,ENGAGEMENT,WBSE
INTO #CAD
FROM CRD
ORDER BY [FINALEID] DESC
Declare @I int
Declare @Sql Nvarchar(MAX),@Sql1 Nvarchar(max)
Set @I=24
WHILE (@I>=0)
BEGIN
Declare @Month Varchar(50),@Date Varchar(400)
Set @Date=DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1+@I,0))
Set @Month='LASTDAYOFFMONTH'+CONVERT(VARCHAR,@I)
SET @Sql ='ALTER TABLE #CAD ADD ' + @Month + ' DateTime'
Exec (@Sql)
Set @Sql1='Update #CAD Set '+ @Month+ '= '''+@Date+''''---where FYYEAR=@FYYEAR
Exec (@Sql1)
Set @I=@I-1
END
Set @I=0
WHILE (@I<=24)
BEGIN
---Declare @Month Varchar(50),@Date Varchar(400)
Set @Date=DATEADD(mm, DATEDIFF(mm, 0, GETDATE())++@I, 0)
Set @Month='FIRSTDAYOFMONTH'+CONVERT(VARCHAR,@I)
SET @Sql ='ALTER TABLE #CAD ADD ' + @Month + ' DateTime'
Exec (@Sql)
Set @Sql1='Update #CAD Set '+ @Month+ '= '''+@Date+''''---where FYYEAR=@FYYEAR
Exec (@Sql1)
set @I=@I+1
END
Set @I=0
WHILE (@I<=24)
BEGIN
---Declare @Month Varchar(50),@Date Varchar(400)
Set @Date=DatePart(M,DateAdd(M,@I,Getdate()))
Set @Month='MONTH'+CONVERT(VARCHAR,@I)
SET @Sql ='ALTER TABLE #CAD ADD ' + @Month + ' int'
Exec (@Sql)
Set @Sql1='Update #CAD Set '+ @Month+ '= '''+@Date+''''---where FYYEAR=@FYYEAR
Exec (@Sql1)
set @I=@I+1
END
Set @I=0
WHILE (@I<=24)
BEGIN
-----Declare @Month Varchar(50),@Date Varchar(400)
Set @Date=DatePart(YYYY,DATEADD(mm, DATEDIFF(mm, 0, GETDATE())+@I, 0))
Set @Month='YEARFORMONTH'+CONVERT(VARCHAR,@I)
SET @Sql ='ALTER TABLE #CAD ADD ' + @Month + ' int'
Exec (@Sql)
Set @Sql1='Update #CAD Set '+ @Month+ '= '''+@Date+''''---where FYYEAR=@FYYEAR
Exec (@Sql1)
set @I=@I+1
END
Thanks,
Dan
December 12, 2015 at 12:55 pm
Please post consumable sample test data from the CAD table... So that we have something to test with.
December 12, 2015 at 5:29 pm
koti.raavi (12/12/2015)
I want to combine four while loops into,any help greatly appreciateddrop table #cad
/*GETTING THE REQUIRED MONTHS FOR PERFORMING THE FURTHER CALCULATIONS*/
SELECT [FINALEID],ResourceHome,[ROLLOFFDATE] ,PROJECT,CLIENT,ENGAGEMENT,WBSE
INTO #CAD
FROM CRD
ORDER BY [FINALEID] DESC
Declare @I int
Declare @Sql Nvarchar(MAX),@Sql1 Nvarchar(max)
Set @I=24
WHILE (@I>=0)
BEGIN
Declare @Month Varchar(50),@Date Varchar(400)
Set @Date=DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1+@I,0))
Set @Month='LASTDAYOFFMONTH'+CONVERT(VARCHAR,@I)
SET @Sql ='ALTER TABLE #CAD ADD ' + @Month + ' DateTime'
Exec (@Sql)
Set @Sql1='Update #CAD Set '+ @Month+ '= '''+@Date+''''---where FYYEAR=@FYYEAR
Exec (@Sql1)
Set @I=@I-1
END
Set @I=0
WHILE (@I<=24)
BEGIN
---Declare @Month Varchar(50),@Date Varchar(400)
Set @Date=DATEADD(mm, DATEDIFF(mm, 0, GETDATE())++@I, 0)
Set @Month='FIRSTDAYOFMONTH'+CONVERT(VARCHAR,@I)
SET @Sql ='ALTER TABLE #CAD ADD ' + @Month + ' DateTime'
Exec (@Sql)
Set @Sql1='Update #CAD Set '+ @Month+ '= '''+@Date+''''---where FYYEAR=@FYYEAR
Exec (@Sql1)
set @I=@I+1
END
Set @I=0
WHILE (@I<=24)
BEGIN
---Declare @Month Varchar(50),@Date Varchar(400)
Set @Date=DatePart(M,DateAdd(M,@I,Getdate()))
Set @Month='MONTH'+CONVERT(VARCHAR,@I)
SET @Sql ='ALTER TABLE #CAD ADD ' + @Month + ' int'
Exec (@Sql)
Set @Sql1='Update #CAD Set '+ @Month+ '= '''+@Date+''''---where FYYEAR=@FYYEAR
Exec (@Sql1)
set @I=@I+1
END
Set @I=0
WHILE (@I<=24)
BEGIN
-----Declare @Month Varchar(50),@Date Varchar(400)
Set @Date=DatePart(YYYY,DATEADD(mm, DATEDIFF(mm, 0, GETDATE())+@I, 0))
Set @Month='YEARFORMONTH'+CONVERT(VARCHAR,@I)
SET @Sql ='ALTER TABLE #CAD ADD ' + @Month + ' int'
Exec (@Sql)
Set @Sql1='Update #CAD Set '+ @Month+ '= '''+@Date+''''---where FYYEAR=@FYYEAR
Exec (@Sql1)
set @I=@I+1
END
Thanks,
Dan
Don't bother, Dan... the While Loops aren't the problem here.
--Jeff Moden
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply