farindra icon

GET KRITERIA PROC (IRFAN)

farindra | PRO | 10/19/18 01:55:53 AM UTC | 0 ⭐ | 501 👁️ | Never ⏰ | []
MySQL |

870 B

|

None

|

0 👍

/

0 👎

DELIMITER $$
 
USE `test`$$
 
DROP PROCEDURE IF EXISTS `getKriteria`$$
 
CREATE DEFINER=`root`@`localhost` PROCEDURE `getKriteria`()
    BEGIN
        SELECT
          GROUP_CONCAT(DISTINCT
            CONCAT(
              'ifnull(SUM(case when K.nama_kriteria = ''',
              K.nama_kriteria,
              ''' then R.nilai_rangking end),0) AS `',
              K.nama_kriteria, '`'
            )
          ) INTO @sql
        FROM `rangking` R
        LEFT JOIN `alternatif` A ON A.id_alternatif = R.id_alternatif
        LEFT JOIN `kriteria` K ON K.id_kriteria = R.id_kriteria;
           
        SET @sql = CONCAT('SELECT A.nama_alternatif, ', @sql, '
            FROM `rangking` R
            LEFT JOIN `alternatif` A ON A.id_alternatif = R.id_alternatif
            LEFT JOIN `kriteria` K ON K.id_kriteria = R.id_kriteria
            GROUP BY A.nama_alternatif');
         
         
     
     
        PREPARE stmt FROM @sql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
     
    END$$
 
DELIMITER ;

Comments