Hola luisef... aquí hay dos cuestiones, una es que no nos dices de qué tipo de dato es tu campo noguia, al tener "00000123" pensaría que es un varchar, por otro lado podría considerarse que la fecha máxima para cada uno de los carclave sería el último. puedes entonces intentar dos formas:
Utilizando el campo fec_reg
Código SQL:
Ver originalSELECT * FROM doc.db T1 INNER JOIN
(
SELECT carclave, MAX(fec_reg) max_fecha_reg FROM doc.db GROUP BY carclave
) T2 ON T1.carclave = T2.carclave AND T1.fec_reg = T2.max_fecha_reg
Utilizando el campo noguia
Código SQL:
Ver originalSELECT * FROM doc.db T1 INNER JOIN
(
SELECT carclave, MAX(noguia) max_noguia FROM doc.db GROUP BY carclave
) T2 ON T1.carclave = T2.carclave AND T1.noguia = T2.max_noguia
En esta última sólo hay que tener cuidado en el tipo de dato, tal como te lo comenté al inicio. Si es de tipo varchar entonces tendrás que hacer la conversión a número.
Haz la prueba y nos comentas.
Saludos
Leo.