Access - Función DFirst en Access

   
Vista:

Función DFirst en Access

Publicado por Rocio Díaz (1 intervención) el 26/01/2018 23:53:08
Hola a todos, les comento que he estado batallando con un problema que no consigo resolver, tengo una consulta con una estructura parecida a la siguiente:
KEY Monto
12A 92634555.17
12B 20587795646
17A 466618960.9
17A 35488562.72
17A 2155584798
17A 132317810.5
18C 264635405.7
18C 2541281.881
18C 26463989.38
18C 2811287647
Lo que deseo hacer es identificar por KEY al primer registro que aparezca, y que sobre ese resultado pueda crear un campo adicional donde solo a ese registro se coloque el monto y los demás aparezcan como 0, quedando de la siguiente manera:

KEY Monto Monto Nuevo
12A 92634555.17 92634555.17
12B 20587795646 20587795646
17A 466618960.9 466618960.9
17A 35488562.72 0
17A 2155584798 0
17A 132317810.5 0
18C 264635405.7 264635405.7
18C 2541281.881 0
18C 26463989.38 0
18C 2811287647 0

He tratado de emplear la función DFirst en el Wizard de la consulta pero no logro que quede de la forma en la que lo indico. Agradecería mucho en caso de que me puedan proporcionar alguna idea para lograr el objetivo que persigo.

Saludos!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Función DFirst en Access

Publicado por Anonimo (942 intervenciones) el 27/01/2018 16:58:54
Utilizando mas de una consulta, se puede llegar a una solución aceptable.

En una consulta se agrupa por 'Key' y se ordena por 'Monto' ..... obtenemos 'el mayor' de cada subconjunto (o el menor si ordenamos de forma inversa).

Una consulta de UNION que añada el resto de registros con un 'valor cero' para el campo monto, crea la ilusión óptica que se busca.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Función DFirst en Access

Publicado por Gabriela gterronesa@hotmail.com (1 intervención) el 31/08/2018 16:30:15
Hola, pudiste resolver tu duda. Tengo un problema similar

id vehículo km fecha
1 1000 31/08
2 2000 31/08
1 900 30/08
3 5000 30/08
2 2500 31/08

Quiero tener el primer registro por fecha e id de vehículo Resultado.

1 900 30/08
2 2000 31/08
3 5000 30/08

Ya utilice la función dfirst pero me obtiene el primer registro de toda la tabla, la condicion es la que no estoy poniendo bien.

Podrias ayudarme.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Función DFirst en Access

Publicado por Anonimo (942 intervenciones) el 01/09/2018 15:24:09
Si se habla de Kilómetros y de orden, el primero de un subconjunto será aquel cuyos kilómetros sean los mas bajos.

La función DFirst no me parece la adecuada para obtener mas de un dato (y no se ha publicado ningún intento de los efectuados para analizar si es correcto o donde esta el error).

Quizás dada la pretensión:
Quiero tener el primer registro por fecha e id de vehículo

Lo adecuado seria una consulta de datos agrupados, en la que se AGRUPARIA por ID y fecha y en el campo Kilómetros se cambia lo de 'agrupar por' por 'mín' (dado que el primero siempre será el menor porque los Kilómetros suelen incrementarse aun avanzando marcha atrás)

Esta consulta devolvería tantos registros como vehículos y días existan en la base (por cada fecha un único Kilometraje por vehículo)

En casos como este el primero o ultimo dependería del orden aplicado o (por defecto) el orden en que se introdujeron, orden que pudiera no corresponderse con el real, utilizar el mínimo kilometraje se ajustara a la necesidad planteada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad