Access - Consulta para obtener el registro más actual

 
Vista:

Consulta para obtener el registro más actual

Publicado por lou1rdiaz;) (2 intervenciones) el 21/09/2018 23:42:29
Buena tardes. Estoy construyendo una base de datos para registrar el control de cambios de documentos de un sistema de gestión. Tengo una tabla con los siguientes campos y registros:

[CodigoDocumento] [NombreDocumento] [Versión]
ACD-DO-001 Checklist de auditoria 0
ACD-DO-001 Checklist de auditoria 1
ACD-DO-001 Checklist de auditoria 2
CPA-FO-003 Control de pesos 0
CPA-FO-003 Control de pesos 1
CPA-FO-003 Control de pesos 2
CPA-FO-003 Control de pesos 3
CPA-FO-003 Control de pesos 4
XYZ-PO-004 Política de embarques 0
XYZ-PO-004 Política de embarques 1

Necesito crear un informe que me arroje la última versión de cada documento:

[CodigoDocumento] [NombreDocumento] [Versión]
ACD-DO-001 Checklist de auditoria 2
CPA-FO-003 Control de pesos 4
XYZ-PO-004 Política de embarques 1

¿Podrían darme una idea de cómo hacerlo?

Gracias,
LRD
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
sin imagen de perfil
Val: 30
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Consulta para obtener el registro más actual

Publicado por Ramon (13 intervenciones) el 22/09/2018 12:59:51
Por ejemplo con esta consulta (adaptando los nombres a tu caso):

1
2
3
4
5
6
7
8
9
10
11
12
Select MyTable.*
From MyTable
    Inner Join
    (
        Select First([CodigoDocumento])
        From
            (
                Select Top 100 Percent [CodigoDocumento]
                From MyTable
                Order By [CodigoDocumento], Versión Desc
            )
    ) As T On MyTable.[CodigoDocumento] = T.[CodigoDocumento]

Puedes ver la explicación de esta técnica en: http://sqlraipon.blogspot.com/2018/09/eliminar-registros-duplicados.html

Saludos.
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
sin imagen de perfil
Val: 30
Ha aumentado su posición en 3 puestos en Access (en relación al último mes)
Gráfica de Access

Consulta para obtener el registro más actual

Publicado por Ramon (13 intervenciones) el 22/09/2018 18:38:14
Disculpa, he contestado sobre la marcha y a posteriori he visto que la consulta no estaba completa.
Verás que he incorporado el campo clave de la tabla.

1
2
3
4
5
6
7
8
9
10
11
12
13
Select MyTable.*
From MyTable
     Inner Join
     (
          Select First(Id) As Clave
          From
               (
                    Select Top 100 Percent Id, CodigoDocumento
                    From MyTable
                    Order By CodigoDocumento, Versión Desc
               )
          Group By CodigoDocumento
     ) As T On MyTable.Id = T.Clave;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Consulta para obtener el registro más actual

Publicado por lou1rdiaz;) (2 intervenciones) el 25/09/2018 15:00:24
Muchas gracias. Me ha sido de gran utilidad. Ten un excelente día. ¡Saludos!
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