CREATE PROCEDURE rekap_bayaran() BEGIN SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'max(IF(nama_tagihan= ''', nama_tagihan, ''', jumlah_tagihan, NULL)) AS ', REPLACE(nama_tagihan, ' ', '_') ) ) INTO @sql FROM v_data_pembayaran; SET @sql = CONCAT('SELECT v_data_pembayaran .nis, v_data_pembayaran.nama_siswa, ', @sql, ' FROM v_data_pembayaran GROUP BY v_data_pembayaran.nis'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END