2

誰でも 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を使用してこれを達成できますか? ありがとうございます。

4

3 に答える 3

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デモ

于 2012-09-28T07:35:23.193 に答える
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;

このSQLFiddleを参照してください

于 2012-09-28T07:43:27.267 に答える
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

于 2012-09-28T07:36:06.490 に答える