Home about IT Motivation Course Sales Project About Me

Sunday, February 01, 2009

sejenis decode di mysql untuk buat tabel pivot

decode hanya dikenal di Oracle. So untuk buat tabel pivot di mysql database pakai cara berikut:
yaitu CASE WHEN, demikian juga bila di MsSQL Server. Mereka juga mengenalnya sebagai CROSS-TAB(ulation) . Kalo pakai script berikut bisa disisipkan ke function jpgraph untuk membuat grafik batang bertingkat.


SELECT date_format( tgl_berita, '%m' ) AS tanggal,

sum(CASE WHEN a.nama_berita = 'ACT' THEN cnt ELSE 0 END ) ACT,
sum(CASE WHEN a.nama_berita = 'VMI' THEN cnt ELSE 0 END ) VMI

FROM (SELECT tgl_berita, nama_berita, count( nama_berita ) cnt
FROM berita GROUP BY nama_berita, tgl_berita)a WHERE tgl_berita > '2007-12-31'
GROUP BY date_format( tgl_berita, '%m' ).

Atau pake class nya ADODB PHP, mereka sudah nyediakan functionnya di
http://phplens.com/adodb/pivot.tables.html

include "adodb/pivottable.inc.php";
$sql = PivotTableSQL(
$gDB, # adodb connection
'products p ,categories c ,suppliers s', # tables
'SupplierName', # rows (multiple fields allowed)
'CategoryName', # column to pivot on
'p.CategoryID = c.CategoryID and s.SupplierID= p.SupplierID' # joins/where
);

No comments: