Crear una consulta que me arroje cartera por edades

Vuelvo a recurrir a vuestros conocimientos en busca de una luz a mis incongnitas, tengo una consulta que me arroja la ultima fecha en la que fue abonado un pedido, además de el valor total de los abonos y el saldo total del pedido, ahora restando entre la fecha de ultimo pago y una fecha de corte que se pueda seleccionar se genera un valor diferencia (días en mora), la pregunta es como puedo separar o agrupar cada pedido dependiendo de rangos de diferencia así

1 a 30, 31 a 60, 61 a 90, 91 a 120, 121 a 180 + de 180

2 respuestas

Respuesta
2

Una opción relativamente sencilla:

Añade nuevas columnas usando la función SiInm() para crear esos grupos, por ejemplo:

0-30: SiInm([CampoDiferenciaFecha]<=30;1;0)

31-60: SiInm([CampoDiferenciaFecha]>30 Y [CampoDiferenciaFecha]<=60;1;0)

...

Así tendrás columnas con los nombres 0-30, 31-60, 61-90... y tendrás el valor 1 en la columna en la que se encuentre ese registro y en el resto 0.

Luego puedes usar esas columnas para, por ejemplo, contar los registros que están en cada tramo de mora, o calcular el total adeudado en cada tramo...

Otra forma sería hacer una función en VBA que devuelva, en texto, el tramo y usarla en la consulta, por ejemplo:

Public fncTramoMora(diasRetraso as Integer) as String
Select Case diasRetraso
Case Is <=30
fncTramoMora="0-30"
Case Is <=60
fncTramoMora="31-60"
Case Is <=90
fncTramoMora="61-90"
....
End Select
End Function

Luego en la consulta añadirías esta columna:

TramoMora: fncTramoMora([CampoDiferenciaFechas])

Y te devolvería para cada registro el tramo en el que está.

Como no tengo muy claro, por tu pregunta, qué es lo que quieres hacer, te dejo esas dos opciones para que elijas la que mejor se te adapte.

Un saludo


gracias por la colaboración, para aclarar un poco lo que deseo es sacar un informe de cartera por edades donde tengo los siguientes campos  No Pedido Fecha Pedido Cédula Cliente Nombre cliente  Mora 30  Mora 60  Mora 90 etc 

la idea es por cada pedido me coloque el saldo debajo de la columna en la que conicida la diferencia entre el ultimo pago y la fecha del pedido  

Pues lo que te he explicado de la función SiInm() te sirve perfectamente, pero en vez de poner 1 o 0, pones el valor del campo que te recoja el saldo o 0, por ejemplo:

Mora30: SiInm([CampoDiferenciaFecha]<=30;[Saldo];0)

Luego en el informe solo has de sumar esos campos Mora*

¡Gracias!   ok voy a trabajar en el proceso te agradezco 

SALUDOS eh desarrollado la consulta como me indicaste pero al colocar la sintaxis del Silnm me dice que la función no esta definida en la expresión he investigado pero si hay algún erro en la sintaxis pero esta bien podrían colaborarme gracias

Prueba con IIf en vez de SiInm

Respuesta

Lo más sencillo es usar la función Silnm o la expresión case

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas