Mostrando entradas con la etiqueta MySQL. Mostrar todas las entradas
Mostrando entradas con la etiqueta MySQL. Mostrar todas las entradas

06 mayo 2010

Hacer un TRANSFORM con MySQL

Tenemos una tabla que contendrá las claves que queremos totalizar:

CREATE TABLE tCodApi (
CodApi VARCHAR(25) NOT NULL,
PRIMARY KEY(CodApi)
);

La llenamos con las claves que necesitamos.

INSERT INTO tCodApi
SELECT CodApi
FROM tramApis
GROUP BY CodApi;

Ahora generamos una consulta de la siguiente manera, con el select más externo, recorremos la tabla de claves, y el GROUP_CONCAT va generando una única cadena que contendrá todos los valores del grupo. El concat más externo nos facilitará la tarea de generar la cadena final.

select
concat (
"SELECT t.FechaPeticion ",
group_concat(
concat(
", SUM(IF(.tCodApi = '", api.CodApi, "', 1, 0)) as '", api.CodApi, "'"
)
order by api.CodApi
separator " "
),
" FROM TramitacionAPIS t ",
" GROUP BY FechaPeticion ",
" ORDER BY FechaPeticion DESC ",
" LIMIT 0,20; "

) as pepe
FROM tCodApi api
where api.CodApi<>"--"
order by api.CodApi;