2016-06-01 8 views
-2

私は2010年から2016年の間に年間2%の価格上昇を追跡できるテーブルを作成するのに助けが必要です。私の文を作成するには、次のとおりです。宛先テーブルに主キーがあるときに他のテーブルからデータを挿入するにはどうすればよいですか?

enter image description here

私は私の新しいテーブルに挿入する必要がある私のProductsテーブルで24の製品と開始価格を持っています。理論的には、私は192レコードが必要です。私は、製品ごとに2010-2016年を循環させることができるように、年の列を埋めるのに役立つ必要があります。私はまた、来年の計算のために前年の価格を参照する助けが必要です。

[enter image description here]

[enter image description here}

+1

は(あまりにも多くの行)、いくつかのサンプルテーブルを追加し、それが結果期待です! – jarlh

+0

どのDBMSを使用していますか?構文は異なる場合があります。 – sagi

+0

@sagi Im using SQL – Bryan

答えて

0
with product as 
     (select 1 as productid , 
       100.0 as price), 
     years(year) AS 
     (
      SELECT 2011 UNION ALL SELECT 2012 UNION ALL 
      SELECT 2013 UNION ALL SELECT 2014 UNION ALL 
      SELECT 2015 UNION ALL SELECT 2016 
     )   
     select 
      p.productid, 
      y.year, 
      power(1.02 , row_number() over (partition by p.productid order by y.year)) * p.price currYearPrice, 
      power(1.02 , row_number() over (partition by p.productid order by y.year)-1) * p.price lastYearPrice  
     from product p 
     cross join years y 

結果は次のとおりです。

pID Year CurrYPr LasYPr 
1 2011 102.000 100.000 
1 2012 104.000 102.000 
1 2013 106.000 104.000 
1 2014 108.000 106.000 
1 2015 110.000 108.000 
1 2016 113.000 110.000 
関連する問題