[PHP-users 18889]Re: 検索結果を横軸に配置するには?
Kogo Ayataro
ayataro @ dd.mbn.or.jp
2003年 11月 13日 (木) 10:17:42 JST
こうごと申します。
横に配置したい月の数が固定されていて(例えば3か月分)、毎月1度cronな
どでメンテナンスをする手間が気にならなければ、ピボットテーブルを使って
SQLで処理してしまうのもありかとは思います。
--- ピボットテーブルの定義
create table pivsample(month char(2),montha int,monthb int,monthc int);
insert into pivsample values('10',1,0,0);
insert into pivsample values('11',0,1,0);
insert into pivsample values('12',0,0,1);
--- 実行するSQL (あまり整理できてないですが...)
select B.tenki,sum(P.montha * B.quantity) as m10,sum(P.monthb * B.quantity) as m11,sum(P.monthc * B.quantity) as m12
from (
select dt,ice_id,tenki,sum(quantity) as quantity from (
select date_part('month',date) as dt,ice_id,tenki,quantity from
icesample
) as A group by A.dt,ice_id,tenki
) as B join pivsample as P on B.dt = P.month group by B.tenki;
以下結果
tenki | m10 | m11 | m12
-------+-----+-----+-----
1 | 115 | 16 | 62
2 | 125 | 10 | 8
3 | 10 | 6 | 70
PHP-users メーリングリストの案内