Obtener los registros más actual de una tabla. |
Responder |
Autor | |
thrall
Nuevo Unido: 04/Agosto/2020 Localización: mexico Estado: Sin conexión Puntos: 21 |
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 |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14027 |
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. |
|
thrall
Nuevo Unido: 04/Agosto/2020 Localización: mexico Estado: Sin conexión Puntos: 21 |
Enviado: 04/Agosto/2020 a las 20:18 |
Buena tarde:
Muchas gracias por tu aporte Mihura, solo utilicé la subconsulta y funcionó perfecto. Saludos.
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |