2012-08-03 19 views
0

我想根據星期進行預測。 我有這樣的桌子。SQL將明年的數據添加到列

personName, year, week1, ..., week52. 

並希望根據我需要多少周將下一年添加到列中。 某些選擇選擇。

最終的選擇應該是這樣的:

select personName, week1,week2,..., (nextyear)week1,(nextyear)week2,.. from x 

任何想法如何,我可以移動明年可達列?

+0

您正在使用哪個數據庫? – 2012-08-03 08:43:26

+0

同一個數據庫,同一張表 – dare2k 2012-08-03 10:13:29

+0

@ dare2k - Joe想知道你正在使用哪個數據庫* SQL Server,Oracle,MySQL等。如果你用這個信息標記你的問題是可用的SQL方言你的問題可能會在每個不同。 – Tony 2012-08-03 10:22:45

回答

1

您希望爲數據而不是列創建行 - 出於您詢問的確切原因。

事情是這樣的結構:

personName Year Week 

然後,你可以做一個查詢,如:

select week from table1 where year=$year-1 and week=$week 

或純SQL這樣的:

select 
    a.personName 
    a.week, 
    a.year 
from 
    table1 a 
     join table1 b 
      on a.personName=b.personName 
      and a.week=b.week 
      and a.year=b.year-1 

但是,這種類似的方法可以用和你的桌子一樣使用:

select 
    a.personName 
    a.week1, 
    a.week2, 
    a.week3, 
    b.week1, 
    b.week2, 
    b.week3, 
    a.year 
from 
    table1 a 
     join table1 b 
      on a.personName=b.personName 
      and a.year=b.year-1 
+0

謝謝!這工作,很好! – dare2k 2012-08-03 08:57:55