Código :
DELIMITER $$
DROP PROCEDURE IF EXISTS `bdupld`.`Get_PLD` $$
CREATE PROCEDURE `bdupld`.`Get_PLD` (IN dia Integer,IN mes Integer,IN periodo Integer,IN tipooperacion varchar(20),IN periodotexto varchar(10))
BEGIN
SET @contador = -1;
SET @tiporeporte = 0;
SET @movimientotexto = 0;
/*SELECT @tiporeporte AS "Tipo Reporte",CAST(periodotexto AS CHAR) AS Periodotexto,CAST(CONCAT(REPEAT("0",6-LENGTH(@contador:=(@contador +1))),@contador) AS CHAR)AS Folio,IF(M.tipooperacion="D",1,IF(M.tipooperacion="P",9,IF(M.tipooperacion="R",2,0)))AS "Tipo Operacion",IF(M.instrumentomonetario="E",1,IF(M.instrumentomonetario="T",3,IF(M.instrumentomonetario="CH",4,0)))AS "Instrumento Monetario",M.Monto,CAST(DATE_FORMAT(M.fecha,"%Y%m%d") AS CHAR)As "Fecha Operacion",CAST(DATE_FORMAT(M.fecha,"%Y%m%d") AS CHAR)As "Fecha Deteccion",IF(C.pais="Mexico","Mexicana","Extranjero")AS "Nacionalidad",IF(C.tipo_cliente="Fisico",1,2)AS "Tipo de Persona",C.razon As "Razon Social",C.nombre_cliente As "Nombre",C.apellido_paterno As "Apellido Paterno",C.apellido_materno As "Apellido Materno",C.RFC,C.CURP,CAST(DATE_FORMAT(C.fecha_nacimiento,"%Y%m%d") AS CHAR)As "Fecha Nacimiento",CAST(CONCAT(C.calle," Num. Ext ",C.numero_exterior," Num. Interior ", C.numero_interior," CP. ",C.codigopostal) AS CHAR)As Domicilio,C.Colonia,C.Ciudad,C.telefono,C.actividadgiro,C.nombreapoderado As "Nombre Apoderado",C.apoderado_apellidopaterno As "Apellido Paterno Apoderado",C.apoderado_apellidomaterno As "Apellido Materno Apoderado",C.apoderado_rfc As "RFC Apoderado",C.apoderado_curp As "CURP Apoderado" FROM Movimientos M INNER JOIN Clientes C ON M.idclientes=C.idClientes WHERE MONTH(fecha)=mes AND DAY(fecha)=dia;*/
IF tipooperacion="Relevante" THEN SET @tiporeporte=1;
ELSEIF tipooperacion="Inusual" THEN SET @tiporeporte=2;
ELSE SET @tiporeporte=3;
END IF;
SET @sql='SELECT @tiporeporte AS TipoReporte,CAST(periodotexto AS CHAR) AS Periodotexto,CAST(CONCAT(REPEAT("0",6-LENGTH(@contador:=(@contador +1))),@contador) AS CHAR)AS Folio,IF(M.tipooperacion="D",1,IF(M.tipooperacion="P",9,IF(M.tipooperacion="R",2,0)))AS TipoOperacion,IF(M.instrumentomonetario="E",1,IF(M.instrumentomonetario="T",3,IF(M.instrumentomonetario="CH",4,0)))AS InstrumentoMonetario,M.Monto,CAST(DATE_FORMAT(M.fecha,"%Y%m%d") AS CHAR)As FechaOperacion,CAST(DATE_FORMAT(M.fecha,"%Y%m%d") AS CHAR)As FechaDeteccion,IF(C.pais="Mexico","Mexicana","Extranjero")AS Nacionalidad,IF(C.tipo_cliente="Fisico",1,2)AS "Tipo de Persona",C.razon As "Razon Social",C.nombre_cliente As "Nombre",C.apellido_paterno As "Apellido Paterno",C.apellido_materno As "Apellido Materno",C.RFC,C.CURP,CAST(DATE_FORMAT(C.fecha_nacimiento,"%Y%m%d") AS CHAR)As "Fecha Nacimiento",CAST(CONCAT(C.calle," Num. Ext ",C.numero_exterior," Num. Interior ", C.numero_interior," CP. ",C.codigopostal) AS CHAR)As Domicilio,C.Colonia,C.Ciudad,C.telefono,C.actividadgiro,C.nombreapoderado As "Nombre Apoderado",C.apoderado_apellidopaterno As "Apellido Paterno Apoderado",C.apoderado_apellidomaterno As "Apellido Materno Apoderado",C.apoderado_rfc As "RFC Apoderado",C.apoderado_curp As "CURP Apoderado" FROM Movimientos M INNER JOIN Clientes C ON M.idclientes=C.idClientes WHERE MONTH(fecha)=mes AND DAY(fecha)=dia;';
PREPARE query FROM @sql;
EXECUTE query;
/*SELECT CAST(@sql AS CHAR) As Query;*/
END $$
DELIMITER ;Y lo llamo asi:
Código :
CALL Get_PLD('%',10,2008,'Relevante','052008');
