2012-09-28 87 views
2

任何人都可以幫助我從mySQL表創建比較矩陣。
我有下表。

想從MySQL表創建比較矩陣

MRP | Brand | USAGE 
10 | ABC | 200 MB 
10 | XYZ | 300 MB 
20 | ABC | 500 MB 
30 | XYZ | 600 MB 


我想查詢其給出以下結果。

MRP | ABC | XYZ 
10 | 200 MB | 300 MB 
20 | 500 MB |----------- 
30 | -----------| 600 MB 

我可以使用PHP來實現嗎? 感謝和問候。

+1

你甚至可以使用MySQL來實現這一點,你應該尋找數據透視表。 – Devart

回答

1

你想要什麼叫做數據透視表。

類似:

SELECT MRP, 
    MAX(IF(Brand='ABC', USAGE,0)) as 'ABC', 
    MAX(IF(Brand='XYZ', USAGE,0)) as 'XYZ' 
FROM table 
GROUP BY MRP; 

更多信息,請參閱這篇文章: http://www.artfulsoftware.com/infotree/queries.php#78

+0

非常感謝它的工作...... –

1

嘗試,

SELECT MRP, 
     MAX(CASE WHEN BRAND = 'ABC' THEN `USAGE` ELSE NULL END) 'ABC', 
     MAX(CASE WHEN BRAND = 'XYZ' THEN `USAGE` ELSE NULL END) 'XYZ' 
FROM tableName 
GROUP BY MRP 

SQLFiddle Demo

1

嘗試GROUP_CONCAT功能與CASE語句來實現這個像這樣的:

SELECT MRP 
    ,GROUP_CONCAT(CASE Brand WHEN 'ABC' THEN `USAGE` ELSE NULL END) AS ABC 
    ,GROUP_CONCAT(CASE Brand WHEN 'XYZ' THEN `USAGE` ELSE NULL END) AS XYZ 
FROM myTable GROUP BY MRP; 

See this SQLFiddle