Hola andres:
Te explicare como lo hago yo...
Tengo una tabla con movimientos regisrtados, dentro de esta tabla hay un campo que denomine "CONTROL" de tipo numerico y es el indice sin aceptar duplicados, cada vez que ingreso un registro a ésta campo "CONTROL" se incrementa el numero.. por ejemplo:
control proveedor fecha claveart descr
1 25 01.01.2007 458558 COMPRA JABON
2 10 01.01.2007 144452 COMPRA ACEITE
3 25 15.01.2007 002552 COMPRA CAMISAS
4 25 25.01.2007 000001 COMPRA REFRESCO
y asi sucesivamente...
cuando quiero recuperar el último registro ingresado de acuerdo al proveedor hago lo siguiente:
long ll_control, ll_proveedor
Select Max ( control )
into:ll_control
from tabla
where ( tabla.proveedor =: ll_proveedor ) ;
entonces me devuelve el valor 4, que es el último registro que ingrese de ese proveedor.
por consiguiente, recupero los datos completos:
date ld_fecha
string ls_claveart, ls_descr
Select claveart, descr,fecha
into:ls_claveart,: ls_descr,:ld_fecha
from tabla
where ( tabla.control =: ll_control );
El resultado es:
ld_fecha = 25.01.2007
ls_claveart = 000001
ls_descr = COMPRA REFRESCO
Todo dependerá como tengas tu indice (llave) en tu tabla que no sea repetido, de lo contrario te devolvera un error diciendo que se recupera más de un registro de acuerdo a las condiciones de recuperación de los datos.
Espero te sirva amigo...
Saludos desde México