Código :
DELIMITER $$ DROP PROCEDURE IF EXISTS `bdutandas`.`Prueba` $$ CREATE PROCEDURE `bdutandas`.`Prueba` (mesi integer,mesf integer,yearange integer,TipoCuenta varchar(20),estado integer) BEGIN IF estado > 1 Then SELECT Cu.TipoCuenta,C.num_cliente As 'No. Cliente',Cu.num_cuenta As 'No. Cta',CAST(D.Fecha AS CHAR) AS Fecha,D.id_deposito As 'NO',D.monto As Depositado,CAST(IF(tipo_cuenta='Semanal',WEEK(NOW()),IF(tipo_cuenta='Quincenal',FLOOR(WEEK(NOW())/2),'Ninguna')) AS CHAR) As 'Periodo Actual',Sum(D.monto)/Cu.monto_abono As 'Periodos Acreditados' FROM depositos D INNER JOIN cuentas Cu ON Cu.id_cuentas=D.id_cuenta INNER JOIN Clientes C ON C.id_cliente=Cu.id_cliente WHERE D.registrado=1 AND MONTH(cu.fecha_inicio)>=mesi AND MONTH(cu.fecha_inicio)<=mesf AND YEAR(Cu.fecha_inicio)=yearange AND Cu.tipo_cuenta LIKE '"TipoCuenta"%' GROUP BY D.id_deposito; ELSE SELECT C.num_cliente As 'No. Cliente',Cu.num_cuenta As 'No. Cta',CAST(D.Fecha AS CHAR) AS Fecha,D.id_deposito As 'NO',D.monto As Depositado,CAST(IF(tipo_cuenta='Semanal',WEEK(NOW()),IF(tipo_cuenta='Quincenal',FLOOR(WEEK(NOW())/2),'Ninguna')) AS CHAR) As 'Periodo Actual',Sum(D.monto)/Cu.monto_abono As 'Periodos Acreditados' FROM depositos D INNER JOIN cuentas Cu ON Cu.id_cuentas=D.id_cuenta INNER JOIN Clientes C ON C.id_cliente=Cu.id_cliente WHERE D.registrado=1 AND MONTH(cu.fecha_inicio)>=mesi AND MONTH(cu.fecha_inicio)<=mesf AND YEAR(Cu.fecha_inicio)=yearange AND Cu.registrado=estado AND Cu.tipo_cuenta '"TipoCuenta"%' GROUP BY D.id_deposito; END IF; END $$ DELIMITER;
No se en que me este equivocando porque al ejecutar la funcion no me regresa nada, pero si envez de usar la variable TipoCuenta dentro del LIKE pongo un tipo de cuenta directamente si me regresa resultados; osea que el problema es que dentro del like no consulta el contenido de la variable sino la palabra TipoCuenta
