Hola, amigos.
Tengo un problema intentando seleccionar los valores de una tabla en la cual hay un campo con N valores (distribuidos en N registros) que —por ende— pueden repetirse N veces. Lo que pretendo es seleccionar los registros que coincidan con la última vez que aparece cada uno de los valores repetidos en el campo en cuestión.
En realidad, esto terminará involucrando a dos tablas, por lo que empecé por una de ellas para ver cómo podría hacerlo. Paso a mostrar la conformación de ambas.
Código Tablas:
Ver originalOBRAS AVANCES
id nomb id id_ob desc
1 ob-1 1 1 desc nro. 1 de ob-1
2 ob-2 2 3 desc nro. 1 de ob-3
3 ob-3 3 1 desc nro. 2 de ob-1
4 ob-4 4 2 desc nro. 1 de ob-2
5 ob-5 5 4 desc nro. 1 de ob-4
6 2 desc nro. 2 de ob-2
7 5 desc nro. 1 de ob-5
8 1 desc nro. 3 de ob-1
9 4 desc nro. 2 de ob-4
10 5 desc nro. 2 de ob-5
11 1 desc nro. 4 de ob-1
12 3 desc nro. 2 de ob-3
Esas son las dos tablas que tengo. En realidad, hay más campos, pero por ahora solo muestro estos para no hacer más extensa la consulta.
El objetivo es tomar los registros de la tabla 'Obras' cuyos avances (registros de la tabla 'Avances') representen la última vez en que fueron guardados. En otras palabras, debería de obtener esto:
Código Objetivo:
Ver originalid nomb desc
1 ob-1 desc nro. 4 <-- ID 11 en la tabla 'Avances'
2 ob-2 desc nro. 2 <-- ID 6 en la tabla 'Avances'
3 ob-3 desc nro. 2 <-- ID 12 en la tabla 'Avances'
4 ob-4 desc nro. 2 <-- ID 9 en la tabla 'Avances'
5 ob-5 desc nro. 2 <-- ID 10 en la tabla 'Avances'
Antes de hacer un
JOIN, intenté tomar los registros finales de cada obra pero solo consultando en la tabla 'Avances', para lo cual hice esto:
Y, en efecto, obtuve los registros 3, 1, 5, 4 y 2, respectivamente. Justo en el orden en el que finalmente terminan ubicándose en la tabla 'Avances' (lo que correspondería a los
id
: 12, 11, 10, 9 y 6).
Luego, al intentar hacer la consulta con ambas tablas, es que se me presenta la complicación. Intenté usar un
GROUP BY
en la campo
id_ob
de la tabla avances, pero solo se agrupan los registros que aparecen por primera vez para cada obra y no los últimos.
Si alguien pudiera sugerirme otra forma de hacerlo para obtener los resultados que busco, se lo agradeceré mucho.
Saludos