salix/db/routines/vn2008/procedures/malpagantes.sql

45 lines
789 B
SQL

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 ;