** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Obtener los registros más actual de una tabla.
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoObtener los registros más actual de una tabla.

 Responder Responder
Autor
Mensaje
thrall Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Agosto/2020
Localización: mexico
Estado: Sin conexión
Puntos: 21
Enlace directo a este mensaje Tema: Obtener los registros más actual de una tabla.
    Enviado: 04/Agosto/2020 a las 00:39
Buena tarde:

Me ha surgido un problema al momento de realizar una consulta para obtener el registro más actual de los valores que tengo guardados en una tabla.

La tabla:

tblConceptos

Codigo|Version|CodVer|Desc|Unidad|Precio|
SC-P-001|0|SC-P-0010|Excavación mecánica|m3|$135.00
SC-P-002|0|SC-P-0020|Excavación manual|m3|$387.00
SC-W-001|0|SC-W-0010|Perforación profunda|m|$2,546.00
ST-C-001|0|ST-C-0010|Drenaje profundo|m|$3,456.00
SC-P-002|1|SC-P0021|Excavación manual|m3|387.00
ST-C-001|1|ST-C-0011|Drenaje profundo|m|$3,456.00
ST-C-001|2|ST-C-0012|Drenaje profundo|m|$3,456.00

donde el campo versión almacena, valga la redundancia, la versión de cada uno de los códigos.

Los códigos se pueden repetir porque se adicionan volúmenes de obra en cada versión, y es por eso que necesito tener una consulta con las versiones más recientes de la tabla, por lo que de la tabla anterior mi consulta debería quedar así:

Codigo|Version|CodVer|Desc|Unidad|Precio|
SC-P-001|0|SC-P-0010|Excavación mecánica|m3|$135.00
SC-W-001|0|SC-W-0010|Perforación profunda|m|$2,546.00
SC-P-002|1|SC-P0021|Excavación manual|m3|387.00
ST-C-001|2|ST-C-0012|Drenaje profundo|m|$3,456.00

Ya que son estos con los que se va a estar trabajando. No me es útil modificar los códigos ya existentes, pues se requieren para tener un histórico de como fueron cambiando.

Una cosa a tomar en cuenta es que esta tabla puede almacenar varios miles de códigos, por lo que estoy buscando como hacerlo de la manera más eficiente, que para mi sería hacer una consulta SQL, para que los usuarios puedan trabajar de manera ágil.

He intentado hacer un SELF JOIN:

SELECT t1.codigo, t1.anexo
FROM tblconceptos AS t1 INNER JOIN tblconceptos AS t2 ON t2.anexo >= t1.anexo
WHERE t1.codigo=t2.codigo
GROUP BY t1.codigo, t1.anexo;

Sin embargo me regresa tanto las nuevas versiones de los códigos como las anteriores.

Sin más por el momento, agradezco su amable ayuda.

Saludos.

Editado por thrall - 04/Agosto/2020 a las 20:21
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Enlace directo a este mensaje Enviado: 04/Agosto/2020 a las 08:57
Hazlo con una subconsulta Sb1:

Sb1, en ella averiguas cuáles son los valores que te interesan:

SELECT Codigo AS SbCodigo, Max(Version) AS SbVerSion FROM tblconceptos GROUP BY Codigo

Y después la consulta principal relacionada con esta:

SELECT tblconceptos .*
FROM tblconceptos 
LEFT JOIN (la consulta descrita arriba) AS T1 ON tblconceptos.Codigo = T1.SbCodigo AND tblconceptos.version = T1.SbVersion

Este es un posible camino.

¡Ojo! ... está escrito al vuelo sin probar campos ni nada, sólo es el concepto.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
thrall Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Agosto/2020
Localización: mexico
Estado: Sin conexión
Puntos: 21
Enlace directo a este mensaje Enviado: 04/Agosto/2020 a las 20:18
Buena tarde:

Muchas gracias por tu aporte Mihura, solo utilicé la subconsulta y funcionó perfecto.

Saludos.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable