次のような #info という名前のテーブルがあります。
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 週間ずつ増加し、1 年先まで進みます。2013 年 1 月 4 日、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