データベースからの検索結果が縦方向に出力されてみにくい場合、こんな方法で横にも出来ます。
こんな感じで保管されているデータで・・・
user |month |result
-------+------+-------
user1 | 1 | 100
user1 | 2 | 200
(省略)
user1 | 10 | 150
user1 | 11 | 240
user1 | 12 | 270
user2 | 1 | 150
user2 | 3 | 170
user2 | 4 | 120
(省略)
user2 | 9 | 200
user2 | 10 | 300
user3 | 1 | 200
user3 | 2 | 300
この様にクエリを書いてSELECTすると・・・
SELECT user
,MAX(CASE WHEN month=1 THEN result END) AS '1月'
,MAX(CASE WHEN month=2 THEN result END) AS '2月'
,MAX(CASE WHEN month=3 THEN result END) AS '3月'
,MAX(CASE WHEN month=4 THEN result END) AS '4月'
,MAX(CASE WHEN month=5 THEN result END) AS '5月'
,MAX(CASE WHEN month=6 THEN result END) AS '6月'
,MAX(CASE WHEN month=7 THEN result END) AS '7月'
,MAX(CASE WHEN month=8 THEN result END) AS '8月'
,MAX(CASE WHEN month=9 THEN result END) AS '9月'
,MAX(CASE WHEN month=10 THEN result END) AS '10月'
,MAX(CASE WHEN month=11 THEN result END) AS '11月'
,MAX(CASE WHEN month=12 THEN result END) AS '12月'
FROM table
GROUP BY user
こうなります。
user | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 ・・・
-------+-------+-------+-------+-------+-------+-------
user1 | 100 | 200 | 130 | 110 | 300 | 130 ・・・
user2 | 150 | NULL | 170 | 120 | 210 | 130 ・・・
user3 | 200 | 300 | NULL | 140 | 160 | 170 ・・・