2013-12-13 55 views
0

雖然我需要將行轉置到列中,但如果它只是將行轉換爲列或列到行,則可以這樣做。在Mysql中將行轉換爲列

我的數據表。

Student|MONTH|Sub-1|Sub-2|Sub-3 
Sunil |JAN | 46 |48 |55 
Sunil |APR |33 |44 |55 
Sunil |JULY |23 |42 |92 
Sunil |OCT |30 |40 |50 
Anil |JAN |22 |33 |44 
Anil |JULY |13 |42 |92 

和期望的輸出。

Student|Sub-1|Sub-2|Sub-3|Sub-1|Sub-2|Sub-3|Sub-1|Sub-2|Sub-3|Sub-1|Sub-2|Sub-3 
-------------------------------------------------------------------------------------- 
Stu1 |6 |48 |55 |33 |44 |55 |23 |42 |92 |30 |40 |50 
Stu2 |22 |33 |44 |  |  |  |13 |42 |92 |98 

etc.. 

任何人都知道如何做到這一點?非常感謝!!!

+0

可能的重複:http://stackoverflow.com/questions/16568228/how-to-transpose-mysql-table-rows-into-columns –

回答

0

您可以使用此解決方案(透視表) -

SELECT 
    Student, 
    MAX(IF(MONTH = 'JAN', `Sub-1`, NULL)) `JAN-Sub-1`, 
    MAX(IF(MONTH = 'JAN', `Sub-2`, NULL)) `JAN-Sub-2`, 
    MAX(IF(MONTH = 'JAN', `Sub-3`, NULL)) `JAN-Sub-3`, 
    MAX(IF(MONTH = 'FEB', `Sub-1`, NULL)) `FEB-Sub-1`, 
    MAX(IF(MONTH = 'FEB', `Sub-2`, NULL)) `FEB-Sub-2`, 
    MAX(IF(MONTH = 'FEB', `Sub-3`, NULL)) `FEB-Sub-3` 
FROM 
    trans 
GROUP BY 
    student 

...其他月份添加列。

+0

謝謝,..它爲我工作.. – Aakeef