DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`malpagantes`() BEGIN set @cliente := 0; set @saldo := 0; Select Id_Cliente, Cliente from Clientes join (select distinct Id_Cliente from Facturas where Fecha > '2015-01-01') cli using(Id_Cliente) left join ( select distinct Id_Cliente from ( select Fecha , @saldo := IF(@cliente = Id_Cliente, @saldo + Importe, Importe) Saldo , @cliente := Id_Cliente as Id_Cliente from ( select Id_Cliente, Fecha, Importe from ( select Id_Cliente, -1 * Importe Importe, Fecha from Facturas union all select Id_Cliente, Entregado, Fechacobro from Recibos ) sub order by Id_Cliente, Fecha ) sub2 ) sub3 where Saldo > -1 and Fecha > '2015-01-01' ) sub4 using(Id_Cliente) where sub4.Id_Cliente is null; END$$ DELIMITER ;