Membuat Baris Record ke Kolom di MySQL Secara Dinamis

Beberapa hari yang lalu saya punya masalah lagi untuk menampilkan data di MySQL. Bagaimana tidak, data yang harus saya tampilkan belum pernah melakukannya. Langsung saja pada topik sesuai judul artikel diatas, yaitu membuat baris record menjadi kolom header, setelah saya coba mencari di mesin penelusur Google akhirnya saya menemukan cara tersebut.

Oke, kita langsung saja bereksperimen ria, pertama-tama buatlah tabel dengan struktur dibawah ini ya, sekalian diinputkan isi recordnya. Nama tabel bebas saja, kali ini sya memberi contoh "tablename" terdiri dari field "date dan value".



Setelah anda buat table seperti diatas, anda bisa menggunakan perintah query dibawah ini, untuk mengubah row atau baris record mendai kolom heade. Berikut querynya :
  
SELECT  GROUP_CONCAT(DISTINCT
        CONCAT('MAX(CASE WHEN date = ''',
               date,
               ''' THEN value ELSE NULL END) AS ',
               CONCAT('`', date, '`')
               )) INTO @sql
FROM tablename  
ORDER BY date;
SET @sql = CONCAT('SELECT ', @sql, ' FROM tablename');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;


Setelah anda buat perintah query seperti diatas, silahkan jalankan atau tekan tombol RUN, hasilnya akan tampak seperti gambar dibawah ini :

Bagaiman kawan..??
Cukup mudah bukan, query seperti ini biasanya digunakan saat akan menampilkan laporan penjualan, atau laporan lain yang menggunakan inputan tanggal. Saya rasa cukup dulu ya untuk pembelajaran query kasus seperti diatas, semoga kawan-kawan pembaca disini yang mempunyai kasus query seperti saya diatas dapat terselesaikan.

Terimakasih, semoga bermanfaat.





0 Response to "Membuat Baris Record ke Kolom di MySQL Secara Dinamis"

Post a Comment