hawkeye22Avatar border
TS
hawkeye22
[MySQL] 3 Langkah membuat Pivot Table (Dynamic Rows to Columns)
Sepertinya, sudah banyak yang bertanya tentang Pivot Table dengan istilah yang berbeda-beda..
Saya coba buat sebuah tutorial Khusus berdasarkan masalah di Thread ini supaya untuk selanjutnya, masalah seperti ini tidak berulang-ulang dipertanyakan..
Berdasarkan kasus di atas, diketahui ada sebuah table dengan data nilai
Spoiler for Tabel Nilai:

dari table tersebut, hasil yang diinginkan adalah, seperti ini:
Spoiler for HasilYgDiinginkan:

lalu ketika ditambahkan data baru, misalnya Nama:Soleh, Nilai:40,50,
hasil yang diinginkan adalah, seperti ini:
Spoiler for HasilLainnya:


Sederhanya, untuk membuat pivot table seperti di atas, ada 3 langkah:
Spoiler for 3 Langkah membuat Pivot Table:


Jika diperhatikan, Table Nilai di atas memiliki 3 kolom yaitu, id, nama, dan nilai dengan data nilai perorang memiliki 2 nilai berbeda,
karena dalam table ini telah ditentukan masing-masing memiliki 2 nilai, maka perlu tambahan 1 kolom untuk menyamakan jenis nilai, sebut saja kolom order.
Hasilnya, Table Nilai akan menjadi seperti ini.
Spoiler for TableNilaiBaru:

Dari Table Nilai yg baru, maka dapat diketahui bahwa nilai memiliki 2 jenis, yaitu nilai 1 dan 2 berdasarkan kolom order.

Setelah itu, mari kita mulai menjalankan 3 Langkah Membuat Pivot Table.
1. query untuk membuat columnHeader
Jika kita menginginkan rows berisi `nama`menjadi header, maka cukup kita membuat pengelompokan berdasarkan `nama`,
kira-kira seperti ini cara mengelompokkannya:
Spoiler for columnHeader:

Hasilnya, seperti DEMO

2. Menentukan queryBuilder untuk membuat query 1 menjadi dinamis
Untuk membangun ratusan/ribuan Column Header, jika kita buat satu persatu seperti Nomor 1 di atas, tentunya akan GEMPORRR DIJAMIN!!!
ini solusinya:
Spoiler for columnHeaderMaker:

hasilnya, akan seperti DEMO2
bisa kita lihat, kita gunakan GROUP_CONCAT "itu" lebih baik.
saya sampaikan terima kasih kepada keluarga CONCAT..

3. Membuat store prosedur
Akhirnya, kita sampai di penghujung acara emoticon-Big Grin
begini kira2 prosedurnya:
Spoiler for StoreProcedure:

dan hasilnya bisa dilihat DEMO3
Spoiler for Hasil Akhir:

ok, cukup sekian, semoga bermanfaat,,
Diubah oleh hawkeye22 17-05-2013 15:42
nona212
nona212 memberi reputasi
2
19.2K
22
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Urutan
Terbaru
Terlama
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Komunitas Pilihan