2015-05-05 43 views
0

早上好,
我在mysql中有這個問題。
我有這樣一個表:將2個等於table1的數據的所有記錄複製到表2中的一個記錄中

表1

AccessDate__UserCode__AnalisisName____AnalisisResult 

2012-01-01____1____________a1______________10 
2012-01-01____1____________a2______________15 
2012-01-01____1____________a3______________12 

2014-03-01____1____________a1______________12 
2014-03-01____1____________a3______________13 

2012-01-01____2____________a1______________14 
2012-01-01____2____________a2______________15 
2012-01-01____2____________a3______________20 

2013-03-01____2____________a1______________3 

2012-01-01____3____________a1______________2 
2012-01-01____3____________a2______________1 

2014-01-01____3____________a1______________10 

我想在其他表的設置都與同一AccessDate和用戶代碼在同一個記錄,並使用AnalisisName值的記錄中的數據複製作爲列指針。
我的意思是:

表2

AccessDate___UserCode___a1__a2__a3 

2012-01-01_____1________10__15_12 
2014-03-01_____1________12___-_13 
2012-01-01_____2________14__15_20 
2013-03-01_____2_________3___-_- 
2012-01-01_____3_________2___1_- 
2014-01-01_____3________10___-_- 

非常感謝您的幫助!
最好的問候
保羅

+0

根據UserCode可以擁有多少'AnalisisName'? –

+0

我們喜歡sqlfiddle。 – Strawberry

+0

我有20個AnalisisName每UserCode和table1有2500000記錄 – paolo

回答

0

創建新表:

CREATE TABLE newtable 
(AccessDate date NOT NULL, 
UserCode integer NOT NULL, 
a1 integer, 
a2 integer, 
a3 integer, 
CONSTRAINT newtable_pk PRIMARY KEY (AccessDate) 
); 

插入A1記錄:

INSERT INTO newtable 
(AccessDate, UserCode, a1) 
SELECT AccessDate, UserCode, AnalisisResult 
FROM table1 
WHERE AnalisisName='a1'; 

插入A2記錄:

INSERT INTO newtable 
(AccessDate, UserCode, a2) 
SELECT AccessDate, UserCode, AnalisisResult 
FROM table1 
WHERE AnalisisName='a2'; 

插入A3記錄:

INSERT INTO newtable 
(AccessDate, UserCode, a3) 
SELECT AccessDate, UserCode, AnalisisResult 
FROM table1 
WHERE AnalisisName='a3'; 
+0

嗨KaiserM11,謝謝你的回覆!問題是table1有2500000條記錄,所以我想啓動一個查詢,它會自動執行你寫的所有查詢 – paolo

相關問題