Prueba a ver qué tal te va esta sentencia...
Código SQL
[-]select C.nfactura, C.fechapago, V.tipoCobro, current_date - C.fechapago as DIAS,
case when V.tipoCobro = 'SEMANAL' and (current_date - C.fechapago > 14)
then 'ATRASADO'
else
case when V.tipocobro = 'QUINCENAL' and (current_date - C.fechapago > 30)
then 'ATRASADO'
else
case when current_date - C.fechapago > 60
then 'ATRASADO'
end
end
end AS ESTADO
from cobros C
inner join ventas V on (C.nfactura=V.nfactura)
where C.valor is null
y nos cuentas.
Qué hace:
- une la tabla ventas y cobros...
- filtra los cobros con valor = nulo ( supongo que son los que no están cobrados)
- dependiendo del tipo de cobro (semanal, quincenal, mensual ) calcula si ha pasado el tiempo suficiente para considerarlo pendiente.
Para comprobar, quita el filtro de pago nulo, y comprobarías si calcula bien para todo tipo de pago....
Añadir la tabla de clientes te lo dejo a ti si el resultado es el bueno.
Saludos