Access - Extraer valores más modernos de una consulta combinada

 
Vista:
sin imagen de perfil

Extraer valores más modernos de una consulta combinada

Publicado por Dábyz (1 intervención) el 08/10/2020 18:22:29
Buenas tardes,

En primer lugar es felicitarles porque he conseguido resolver muchas dudas sólo con consultar diversas entradas del foro. Muchas gracias a todos los que brindáis apoyo.

Os comento.

Tengo 2 tablas con sus campos:
-PRESUPUESTOS:
*IdPresupuesto
*Dirección
*...
-HISTÓRICOSTATUS:
*IdPresupuesto
*Status
*Fecha

Están relacionadas por el campo que comparten 1=n.

Os explico lo que necesito. Los presupuestos cambian de status de preparado>enviado>realizado>facturado y cada status, genera una línea nueva con su status y fecha.
Lo ejemplifico (sólo la tabla HISTÓRICOSTATUS):
IdPresupuesto Status Fecha
1 Preparado 01/10/2020
1 Enviado 03/10/2020
1 Realizado 06/10/2020
1 Facturado 06/10/2020
2 Enviado 05/10/2020
2 Realizado 08/10/2020
3 Enviado 04/10/2020
4 Enviado 05/10/2020
4 Realizado 07/10/2020

Si pregunto por los "realizados" necesitaría que la consulta me devolviese únicamente los presupuestos 2 y 4, porque el 3 no tiene ese status"realizado" y el 1 tiene un status posterior ("facturado").

He realizado una condición a la consulta que devuelve resultados creando una tabla STATUS con un valor numérico para cada status: 1 Preparado; 2 Enviado; 3 Realizado; 4 Facturado. de tal manera que me devuelve los campos que son superiores o iguales al valor del status...

Llevo varios días dándole vueltas y estoy atascadísimo...

Muchas gracias de antemano!!
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
Imágen de perfil de Manuel
Val: 395
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Extraer valores más modernos de una consulta combinada

Publicado por Manuel (171 intervenciones) el 10/10/2020 11:00:52
A ver si te entendí bien:
Tienes una tabla con los presupuestos y los datos de estos
Tienes una tabla en donde recoges los cambios de status de un presupuesto y puede haber varios registros con el mismo presupuesto, una vez por cada cambio de estado.
Tu quieres los presupuestos que han llegado a una fase concreta, en este caso realizado

Ante lo anterior, pues la respuesta de como hacer la consulta que te devuelva los presupuestos realizados es fácil y es usando subconsultas. Y sería algo así:

1
SELECT * FROM Presupuestos WHERE Presupuestos.IdPresupuestos IN (SELECT historicoStatus.IdPresupuesto FROM historicoStatus Where historicoStatus.status LIKE 'Realizado');

Esa es la idea. Hay varias formas de hacerlo, pero básicamente es lo mismo.
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