在SQL服务器中循环

时间:2014-02-20 08:29:30

标签: sql sql-server sql-server-2008

我正在尝试为存储过程创建一个水平循环。现在我使用更新来水平填充列。当我不得不改变一个条件时,我觉得效率低,耗时,然后我必须在28个地方改变它。用户已经水平请求了数据,因此我会尝试更改SP以循环它。虽然我以前从未这样做过,也不确定它在SQL中是否可行?

Insert into #ExcelPrint (Col01,Col02)
Select 'Åtg 8:00', Sum(Convert(int,t.Amount)) from
Maintenance.dbo.Table t
where Time = '8:00'
and DATEPART(yy,Datum)= DATEPART(YY,Dateadd(DD,0,GETDATE()))
and DATEPART(MM,Datum)= DATEPART(MM,Dateadd(DD,0,GETDATE()))
and DATEPART(DD,Datum)= DATEPART(DD,Dateadd(DD,0,GETDATE()))

Update #ExcelPrint
Set Col03 = (Select Sum(Convert(int,ha.Amount)) from 
Maintenance.dbo.table t
where Time = '8:00'
and DATEPART(yy,Datum)= DATEPART(YY,Dateadd(DD,-1,GETDATE()))
and DATEPART(MM,Datum)= DATEPART(MM,Dateadd(DD,-1,GETDATE()))
and DATEPART(DD,Datum)= DATEPART(DD,Dateadd(DD,-1,GETDATE())))
where row = (Select COUNT(*) from #ExcelPrint)

更新继续直到dd,-6所以一周之后。我想让这个循环成为一个循环,它将在我的SP中为未来做出更好的决定。

0 个答案:

没有答案