0
我有一個名爲#info該表是這樣的:計算SQL Server 2008 R2中未來值的最佳SQL代碼?
name start delta
n1 200.0 43.0
n2 6000.0 87.0
n3 739.0 129.0
create table #info (name sysname, startV float, changeV float);
但我需要創建一個表,從該表#info需要的值,並計算未來值每名在表上方。所以我們有一個初始值和一個數量變化或一個變化量。所以我需要生成一個計算未來日期和未來金額的表格。日期將增加2周,並在未來升至一年。 2013年4月1日,我們開始使用STARTV值並通過更改值增加開始值。所以基本上,輸出會看起來像這樣:
date name amount
01/04/2013 n1 200
01/18/2013 n1 243
02/01/2013 n1 286
....... ... ....
01/04/2014 n1 673
01/04/2013 n2 6000
01/18/2013 n2 6087
02/01/2013 n2 6174
....... ... ....
01/04/2014 n2 6957
01/04/2013 n3 739
....... ... ....
這裏是我想出了迄今爲止SQL代碼,它只做它的N1值,它沒有列出N2或N3的值...我需要改變什麼?
DECLARE @dd DATE
SET @dd = '01/04/2013';
SELECT TOP 24 DATEADD(week, 2*rn, @dd) ,*
FROM (SELECT rn=(ROW_NUMBER() OVER (ORDER BY name)) -1
FROM sys.columns) c cross apply
(select d.dbname , d.startV+((rn+1)*d.changeV) as mm from #info d) a
非常感謝你。我很難理解遞歸CTE。也許這會幫助我理解我的想法......謝謝! – user2573624