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