Consulta para conseguir los recibos que han disminuido su importe respecto su anterior en el tiempo.

Tengo un problema con Access y no consigo encontrar la
solución más adecuada.

Tengo una relación de clientes, repetidos en diferentes
meses con sus importes. Necesito destacar los registros donde este importe
disminuye dentro de cada uno de los clientes:

CLIENTE(asc) FECHA(asc) IMPORTE
9172 01/09/2011 58,85 €
9172 01/05/2012 61,82 €
9172 01/09/2012 31,35€ <-- La consulta devolvería esta línea
9172 01/11/2012 61,82 €
3974 01/10/2012 205,11 €
0273 01/09/2011 38,92 €
0273 01/05/2012 41,06 €
0273 01/09/2012 21,06 € <-- La consulta devolvería esta línea
0273 01/10/2012 41,06 €
0273 01/11/2012 41,06 €
0976 01/09/2011 69,62 €
0976 01/05/2012 73,74 €

¿Cómo podría construir una consulta para que me devuelva los
importes que descienden en tiempo dentro de cada uno de los clientes?

1 Respuesta

Respuesta
1

Esta es una consulta que requiere de desarrollo, ya que hay que mostrar específicamente la unión entre la tabla clientes y el registro de recibos. Pues haré un ejemplo con los mismos datos que muestras, y la tabla clientes solo la haré con los códigos que presentas.

Ok. Espera tranquilo saludos.

Ya tengo hecha la consulta, fue una consulta con datos agrupados, donde hay que colocar la fecha en primero y el importe en mínimo.

Quedando así la consulta sql:

SELECT clientes.nombre, clientes.cod_cliente, First(recibos.fecha_recibo) AS PrimeroDefecha_recibo, Min(recibos.importe) AS MínDeimporte
FROM clientes INNER JOIN recibos ON clientes.cod_cliente = recibos.cod_cliente
GROUP BY clientes.nombre, clientes.cod_cliente
ORDER BY clientes.cod_cliente, First(recibos.fecha_recibo);

De todas formas te voy a enviar el ejemplo como mdb para que lo veas. Saludos.

https://www.dropbox.com/s/co7vo1qfhgakmnp/Registro%20de%20Recibos.mdb

Espero sea la solución Saludos. Ojo noté que hay clientes que solo tiene un recibo por lo que te arrojará ese valor también, a menos que cuentes los registros y solo muestro para aquellos que tengan más de 2 recibos. Eso sería otro tipo de consulta.

Claro, ese es el problema, ya que no es sacar el mínimo, si no que es sacar el registro disminuye respecto al anterior, incluso pudiendo poner un porcentaje/margen de diferencia para que no lance variaciones de un solo céntimo.

No quiero abusar, pero si pudieras montar la consulta contando los recibos me harías un gran favor. Si no es así, te lo voy a agradecer igual, hacéis una valor inigualable!

Por ejemplo, aquí sólo debería mostrar el tercero:

1359 01/09/2011 18,94
1359 01/02/2012 22,78
1359 01/05/2012 19,77 <----

Ya que intento detectar cuando disminuye respecto al anterior, no el mínimo, soy consciente de que es difícil, no consigo dar con ello.

O sea si el registro es menor al anterior entonces lo muestra. Esto se puede lograr a través de código, y guardándolo en una tabla temporal,

Ya que en las consultas solo puedes comparar registro a registro. Esto llevaría algo de programación y eso tiene un costo asociado.

El tema no lo podrás resolver con una consulta, ya que hay comparación entre registros lo que hay que hacer es este caso es un código que recorra la consulta y busque el valor con la condición si es menor al anterior. Y almacenarlo cuando encuentre ese dato en un tabla temporal. Pero como digo eso ya tiene un costo asociado.

Si deseas que lo resuelva escríbeme a [email protected] y lo vemos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas