Como converter coluna em linha, pivot table, mysql

Olá

Alguém já tentou implementar uma pivot table no mysql?
Tenho 3 tabelas: projeto, objetivo e projetos_objetivos.
Necessito criar uma consulta que faça o cruzamento de projeto x objetivos, como na figura em anexo:

http://www.m104.com.br/downloads/prj_x_obj.jpg

Para isso tentei com o seguinte comando, mas não deu certo!!

SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(“Projeto” = ', “Projeto”, ‘,Objetivo,NULL)) AS
Objetivo’, “Objetivo”)
) INTO @sql
FROM projetos_objetivos;

SET @sql = CONCAT('SELECT Id, ‘, @sql, ’
FROM projetos_objetivos
GROUP BY Id’);

PREPARE sentenca FROM @sql;
EXECUTE sentenca;
DEALLOCATE PREPARE sentenca;

Alguma idéia?
Valeu.’.

Vou precisar de algo assim no projeto que estou fazendo agora.

Descobrir que via scriptcase ele faz isso na consulta dinâmica nas opções de resumo, porém o ideal seria via SQL, se alguém puder ajudar seria bom, valeu .’.

http://stratosprovatopoulos.com/web-development/mysql/pivot-table-with-dynamic-columns/

Bom dia, o difícil do pivot é gerar ele dinâmico, segue um código que usei e deu certo. Altera o que precisa e testa:

declare @values as nvarchar(max)
SELECT @values = STUFF(( SELECT DISTINCT
‘],[’ + GRUPO
FROM PROD_PROCESSO_GRUPO_ITENS
ORDER BY ‘],[’ + GRUPO
FOR XML PATH(’’)
), 1, 2, ‘’) + ‘]’
declare @query as nvarchar(max)
set @query = ‘Select CODIGO,(SELECT top 1 RTRIM(CTT_DESC01)+’’ (’’+RTRIM(CTT_CUSTO)+’’)’’ FROM dadosnetuno.dbo.CTT010 WHERE CTT_CUSTO=CODIGO and D_E_L_E_T_ = ‘’’’), |@
from
(
Select GRUPO,CODIGO, PORCENTAGEM from PROD_PROCESSO_GRUPO_ITENS
) PT

PIVOT
( SUM(PORCENTAGEM) for GRUPO in ( |@ )) pvt’
set @query = REPLACE(@query,’|@’,@values)

exec(@query)

“Bota” difícil nisso.
Bom vi algo interessante sobre o assunto não utilizei ainda.
https://www.youtube.com/watch?v=Ldxbw2vBJ0s

http://mysqlpivottable.net/Buy.html

Prefiro quebrar o problema em partes.

Em vez de fazer um SQL só, divido em views, e depois importo em uma tabela tmp_ para finalizar.