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');