0

以下に示すように、3列のテーブルがあります。各 TYPE (0/1/2 のみ) のコストを要約し、select ステートメントを使用して (DATE フィールドの) 月と年でグループ化します。

+------------+------+-------+
| DATE       | TYPE | COST  |
+------------+------+-------+
| Feb-1-2003 |  0   | 19.40 |
| Feb-5-2010 |  1   | 28.10 |
| Mar-3-2011 |  2   | 64.20 |
| Sep-8-2012 |  0   | 22.60 |
| Dec-6-2013 |  1   | 13.50 |
+------------+------+-------+

出力は次のようになります。

+----------+------------+------------+------------+
| PERIOD   | TYPE0      | TYPE1      | TYPE2      |
+----------+------------+------------+------------+
| Jan 2003 | 123123.12  | 23432.12   | 9873245.12 |
| Feb 2003 | 123123.12  | 23432.12   | 9873245.12 |
| Mar 2003 | 123123.12  | 23432.12   | 9873245.12 |
etc...
+----------+------------+------------+------------+

誰かがこの選択ステートメントを手伝ってくれますか?

4

1 に答える 1

3

Mysqlはピボットクエリ用に設計されていません。他の言語で集計することをお勧めします。ただし、それが不可能だと言っているわけではありません。

SELECT
    CONCAT(MONTH(DATE), ' ', YEAR(DATE)) AS PERIOD,
    SUM(IF(TYPE = 0, COST, 0)) AS TYPE0,
    SUM(IF(TYPE = 1, COST, 0)) AS TYPE1,
    SUM(IF(TYPE = 2, COST, 0)) AS TYPE2
FROM
    t1
GROUP BY
    PERIOD
于 2013-02-16T04:08:37.710 に答える