1

ここの初心者。

私はcodeigniterとmysqlを使用していますどうすれば動的に(名前の数が変わる可能性があります)テーブルを次から変換できますか:

+------+-------+-------+
| date | name  | value |
+------+-------+-------+
| 06-01|   A   |  1    |
| 06-02|   A   |  2    |
| 06-02|   B   |  3    |
| 06-03|   C   |  4    |
+------+-------+-------+

に:

+------+---+---+---+
| date | A | B | C |
+------|---+---+---|
| 06-01| 1 |   |   |
| 06-02| 2 | 3 |   |   
| 06-03|   |   | 4 |
+------+---+---+---+

?

ありがとうございました。

4

1 に答える 1

2

このようなものがうまくいくはずです。

SELECT date,
       SUM(IF(name='A',value,0)) AS 'A',
       SUM(IF(name='B',value,0)) AS 'B',
       SUM(IF(name='C',value,0)) AS 'C'
FROM myTable
GROUP BY date
ORDER BY date

各 SUM を手動で SQL ステートメントに追加するには、列名が何であるかを知る必要がありますが、大幅に変更される可能性がある場合は、PHP を使用してこれを行うことができます。

同様に、 の値の合計ではなく、各名前が出現した回数のカウントが必要な場合はvalue、に置き換えます。1name

于 2011-06-21T10:18:00.797 に答える