Código:
DELIMITER $$ DROP PROCEDURE IF EXISTS `usp_Consolidado` $$ CREATE DEFINER=`tomza`@`%` PROCEDURE `usp_Consolidado`( in pFechaFinal varchar(50) ) BEGIN DROP TABLE IF EXISTS Tmp; CREATE TABLE Tmp SELECT factura.fecha as fecha,personal.codigo as codigo, concat(personal.nombres, ' ', personal.apellidos) nombre,distribucion.nombre as distribucion, if(articulo.codigo='2005', factura_detalle.cantidad,0) as CL05, if(articulo.codigo='2010', factura_detalle.cantidad,0) as CL10, if(articulo.codigo='2020', factura_detalle.cantidad,0) as CL20, if(articulo.codigo='2025', factura_detalle.cantidad,0) as CL25, if(articulo.codigo='2035', factura_detalle.cantidad,0) as CL35, if(articulo.codigo='2040', factura_detalle.cantidad,0) as CL40, if(articulo.codigo='2060', factura_detalle.cantidad,0) as CL60, if(articulo.codigo='2100', factura_detalle.cantidad,0) as CL100, if(articulo.codigo='2005' or articulo.codigo='2010' or articulo.codigo='2020' or articulo.codigo='2025' or articulo.codigo='2035' or articulo.codigo='2040' or articulo.codigo='2060' or articulo.codigo='2100',factura_detalle.cantidad,0) as cilingaldros, if(articulo.codigo='2005' or articulo.codigo='2010' or articulo.codigo='2020' or articulo.codigo='2025' or articulo.codigo='2035' or articulo.codigo='2040' or articulo.codigo='2060' or articulo.codigo='2100',factura_detalle.galones,0) as equival_galones, if(articulo.codigo='4000' or articulo.codigo='5000',factura_detalle.galones,0) as galones from factura_detalle inner join factura on factura_detalle.facturaid=factura.facturaid inner join personal on factura.pilotoid=personal.personalid inner join distribucion on factura.distribucionid=distribucion.distribucionid inner join articulo on factura_detalle.articuloid=articulo.articuloid where articulo.codigo='2005' or articulo.codigo='2010' or articulo.codigo='2020' or articulo.codigo='2025' or articulo.codigo='2035' or articulo.codigo='2040' or articulo.codigo='2060' or articulo.codigo='2100' or articulo.codigo='4000' or articulo.codigo='5000'; select date_format(fecha, '%Y/%m/%d'),codigo, nombre,distribucion, (sum(CL05) + sum(CL10)) as OTROS, sum(CL20) as CL20, sum(CL25) as CL25, sum(CL35) as CL35, sum(CL40) as CL40, sum(CL60) as CL60, sum(CL100) as CL100, sum(cilingaldros) as cilingaldros, sum(equival_galones) as equival_galones, sum(galones) as galones from tmp c where date_format(fecha, '%Y/%m/%d') between date_format(pFechaFinal,'%Y/%m/01') and date_format(pFechaFinal,'%Y/%m/%d') group by codigo order by fecha; END $$ DELIMITER ;