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 ;
