Power Builder - Retrive el MAX

 
Vista:
sin imagen de perfil

Retrive el MAX

Publicado por Andres (331 intervenciones) el 13/08/2007 22:47:14
Hola Amigos

Tengo una tabla de movimientos, en ella existen varios movtos. del mismo producto pero en diferentes fechas de proceso.

Como puedo rescatr el ultimo registro ingresado a la base de datos

Atte

Andres
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Retrive el MAX

Publicado por Antonio (1271 intervenciones) el 14/08/2007 06:29:40
Hola Andres:

Mira, si lo haces a traves de un Retrieve ( dw_datawindow), solo ordenarlo en forma acendente o decendente y ahi podras recuperar el último registro, dependiendo de la posicion del ordenamiento.

Si usas código para recuperarlo, debes tener una llave o algun campo que no se repita en los valores (por ejemplo tu llave ó indice que sea único).

Ejemplo:

string ls_clave_producto

Select Max (claveproducto)
into:ls_clave_producto
from tabla;

If isnull (ls_clave_producto ) then
MessageBox('¡ Aviso !','No hay datos regisrtados...',information!)
return
end if

MessageBox('Clave del producto:',ls_clave_producto,information! )

Espero te sirva amigo

Saludos desde México
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Retrive el MAX

Publicado por Andres (331 intervenciones) el 14/08/2007 15:08:36
Gracias Antonio

Lo que pasa, que en el modulo de compras y al emitir un nuevo documento lo que quiero hacer es recuperar el ULTIMO registro de cada producto emitido en documentos anteriores emitido a ese proveedor.

Tengo una dw que recupera los productos asociado a ese proveedor, pero me recupera TODOS los productos. Yo quiero recuperar solo el ultimo registro ingresado a la base de datos.

LA solucion sera filtrar los maximos ?????

Atte

Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Retrive el MAX

Publicado por Antonio (1271 intervenciones) el 14/08/2007 21:27:22
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Retrive el MAX

Publicado por Andres (331 intervenciones) el 14/08/2007 22:57:51
Antonio

Muchas Gracias por tus concejos

Saludos Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar