2013-08-05 126 views
0

我現在有一個表格,這是非常不方便的格式。
實施例:
色譜柱:
SQL重新格式化表列

Quarter/ID/Sales 
1 /234 /50 
1 /258/100 
2 /234/50 
2 /456/125 
3 /258/100 
3 /456/75 
3 /555/100 
4 /555/50 

這僅僅是一個例子,也有像5600列現實。

我要重新格式化表格,使得我剛纔給的例子看起來更像:

ID/ Q1 / Q2 / Q3 / Q4 
234/ 50 / 50 / 0 / 0 
258/ 100/ 0 / 100 / 0 
456/ 0 / 125 / 75 / 0 
555/ 0 / 0 / 100 / 50 

有我的方式很容易地只是移動這些列,也許基於某種查找了身份證號碼?我只需要一個記錄中每個ID的所有數據與單獨的列,而不是4個記錄,每個季度一個。

感謝




---到目前爲止,所有我做的是創造具有鮮明的ID的新表。然後,我想要使用某種加入或查找插入操作,可以將所有記錄放入季度= 1的Q1和經銷商=記錄的經銷商。

回答

0

我想通了。首先我做了一張新桌子。

CREATE TABLE newtable (ID varchar (5), Q1 int, Q2 int, Q3 int, Q4 int) 

然後我插入不同的ID的

INSERT INTO newtable 
SELECT DISTINCT ID 
FROM oldtable 

那麼對於Q1我做了一個INSERT語句這樣:

UPDATE newtable 
SET newtable.Q1 = oldtable.sales 
FROM newtable 
INNER JOIN oldtable 
ON newtable.ID = oldtable.ID 
WHERE oldtable.quarter = '1' 

然後我就複製並做了它每個季度,更改爲Q2,然後在WHERE語句中分別爲'2'。

只要確保您檢查重複項,我的實際數據集就有重複項,因爲我使用了與其他列配對的選擇項。