我正在尝试为存储过程创建一个水平循环。现在我使用更新来水平填充列。当我不得不改变一个条件时,我觉得效率低,耗时,然后我必须在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中为未来做出更好的决定。