BEGIN
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'ifnull(SUM(case when K.nama_kriteria = ''',
K.nama_kriteria,
''' then R.nilai_normalisasi end),0) AS `',
K.nama_kriteria, '`'
)
) INTO @sql
FROM `detail_rangking` R
LEFT JOIN `alternatif` A ON A.id_alternatif = R.id_alternatif
LEFT JOIN `kriteria` K ON K.id_kriteria = R.id_kriteria
LEFT JOIN `posisi` P ON P.id_posisi = R.id_posisi;
SET @sql = CONCAT('SELECT A.nama_alternatif,', @sql, ', P.nama_posisi
FROM `detail_rangking` R
LEFT JOIN `alternatif` A ON A.id_alternatif = R.id_alternatif
LEFT JOIN `kriteria` K ON K.id_kriteria = R.id_kriteria
LEFT JOIN `posisi` P ON P.id_posisi = R.id_posisi
GROUP BY P.nama_posisi DESC,A.nama_alternatif' );
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
Comments