2014-02-21 42 views
0

我有一張桌上有足球隊的比分。這些分數(百分比)已按照玩家每週的星期排序。時間戳已經轉換,現在有倍數得分每週一名球員如下:SQL Server:組,按列創建列和排序

Week  Player  Score 
    2013w51  Louis   12 
    2013w51  Miguel  76 
    2013w51  Miguel  21 
    2013w51  Charles  62 
    2013w52  Pedro   21 
    2013w52  Rodriguo  62 
    .   .   . 
    .   .   . 
    .   .   . 
    2014w2  Louis   52 
    2014w2  Louis   85 
    2014w2  Charles  65 

我想通過玩家每週和每名球員(總計)的平均分如下排序(考慮到周固定9周):

Player  2013w51 2013w52 2014w1 2014w2 ... 
    Louis   14  58  62  68.5 ... 
    Miguel   48.5  62  48  66 ... 
    Charles  65  12  89  56 ... 
    Pedro   82  85  54  76 ... 
    Rodriguo  16  56  76  29 ... 

感謝您的熱心幫助

TDEV

編輯:

我使用PIVOT功能如下。

SELECT * 
     FROM 
     (SELECT [Player], [Week], [Score] 
      FROM Temp_Db) AS SourceTable 
     PIVOT 
     (
      AVG([Average]) 
      FOR [Week] IN ([2013w51], [2013w52], [2014w1], [2014w2]) 
     ) AS PivotTable; 
+0

您應該在應用程序級別執行此操作... – Justin

回答

0

我用PIVOT功能如下。

SELECT * 
    FROM 
    (SELECT [Player], [Week], [Score] 
     FROM Temp_Db) AS SourceTable 
    PIVOT 
    (
     AVG([Average]) 
     FOR [Week] IN ([2013w51], [2013w52], [2014w1], [2014w2]) 
    ) AS PivotTable; 
0

申報@T表(week1 VARCHAR(50),玩家VARCHAR(50),得分INT)

插入到@T值( '2013w51', '路易',12)

INSERT INTO @T值( '2013w51', '路易',50)

插入到@T值( '2013w51', '路易',13)

插入到@T值( '2013w5' ,'Pedro',22)

插入到@T值( '2013w51', '路易',50)

插入到@T值( '2013w5', '佩德羅',13)

選擇week1,播放器,AVG(從@T

組分數)作爲COLVALUE由week1,玩家

+0

謝謝您的回覆,但我沒有很好地解釋我的問題。我找到了解決方案(在OP中編輯) – Tdev

+0

@ Tdev ..歡迎.. –