Ver Mensaje Individual
  #11  
Antiguo 22-08-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Reputación: 22
fjcg02 Va camino a la fama
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'  /* 'MENSUAL' */
     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
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita