I have a table like this:
id       key       year   month   value
---------------------------------------
1        AD        2000    1       5465
2        AD        2000    2       6445
3        JK        2000    1       7777
4        JK        2000    2       9999
I need to retrive the values like this:
key       2000-1  2000-2
------------------------
AD        5465    6445
JK        7777    9999
I'm having issues with creating the headers, concatenating year and month and displaying the value under the header.
I have another pivot procedure like this:
SELECT
    GROUP_CONCAT(
        DISTINCT CONCAT(
            'MAX(IF(combustible_id = ''',
            combustible_id,
            ''', valor_combustible, NULL)) AS ',
            CONCAT("`",admin_combustibles.nombre,"`")
        )
    ) INTO @SQL
FROM
    admin_indice_combustibles
INNER JOIN admin_combustibles 
   ON admin_indice_combustibles.combustible_id = admin_combustibles.id_combustible 
WHERE admin_indice_combustibles.estado = 1;
SET @SQL = CONCAT(
    'SELECT anio, mes, ',
    @SQL,
    ' FROM admin_indice_combustibles
      WHERE estado = 1 
      GROUP BY anio, mes 
      ORDER BY id_indice_combustible'
);
PREPARE stmt
FROM
    @SQL;
it is working, but it uses more data (because it has a JOIN with another table), now is easier, all the data is in just 1 table, but I can't get it. any hint please?
EDIT:
I'm trying with this code:
BEGIN
SELECT
    GROUP_CONCAT(
        DISTINCT CONCAT(
            ' MAX(IF(anio = ''',
            DIST.anio,
            ''' AND mes = ''', DIST.mes, ''', energia_adjudicada_mwh, NULL)) AS ',
            CONCAT("`",DIST.anio,"-`", DIST.mes,"`")
        )
    ) INTO @SQL
FROM
    admin_contratos_energia_adjudicadas_distribucion_mensual AS DIST
WHERE DIST.activo = 1;
SET @SQL = CONCAT(
    'SELECT DIST.key, DIST.contrato_id ',
    @SQL,
    ' FROM admin_contratos_energia_adjudicadas_distribucion_mensual AS DIST 
        WHERE activo = 1 
        GROUP BY DIST.key 
        ORDER BY DIST.contrato_id ');
PREPARE stmt
FROM
    @SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
I'm getting the error:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MAX(IF(anio = '2016' AND mes = '1', energia_adjudicada_mwh, NULL)) AS 2016-1`,' at line 1
I just need to concatenate the year (anio) and month (mes) in the header, and give the value (energia_adjudicada_mwh) to them, for each year and mont, group by key...

 
    
