PDA

Ver la Versión Completa : Leer ultimo registro de Tabla transparente


plus_44
11/06/09, 23:01:08
Buen día!

Eee pues tengo poco de andar en estos temas del abap... y ya me surgieron las dudas...

Cómo puedo leer el último registro de una tabla TRANSPARENTE la cual tiene muuuchos registros, he visto como leer el ultimo registro de una tabla interna, pero leer la tabla en la interna... =S les digo k es bastante grande.

espero me puedan ayudar... la tabla tiene una columna con numeración consecutiva.

Saludos!

patrus
12/06/09, 07:20:16
Hola
lo puede hacer de varias maneras si tienes una idea mejor adelante

Manera 1
Te declaras una tabla interna
guardas todos los registros de la tabla transparente a la interna
SELECT * INTO TABLE IT_KNBK FROM KNBK
WHERE KUNNR = WA_KNA1-KUNNR.
Y despues ordenas la tabla interna de manera descendente y cuando recorras luego la tabla interna el primer registro seria el ultimo registro de nuestra tabla transparente
sort IT_KNBK DESCENDING by codigo.

Manera 2

Select Max(codigo) as max from KNBK into ultimo
y obtienes el registro mayor

manera 3
select * from knvv into wa_knvv
ORDER BY KUNNR DESCENDING.
endselect.
espero haber ayudado ya me contaras

jtristan
12/06/09, 07:37:17
Yo creo que la opción 2 es muy buena. Creo que es la más rápida ya que sólo cargarías en memoria el último registro y suponiendo que sea índice el acceso al mismo debería ser bastante rápido.
Como necesitarás recuperar varios campos, podrias hacerlo así:

SELECT MAX( VBELN ) ERDAT ERZET ERNAM FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE ti_vbak
GROUP BY ERDAT ERZET ERNAM.


Un saludo.

plus_44
12/06/09, 21:49:19
Excelente amigos muy muy util!! :D

asi hasta me gusta programar :rolleyes: heheheh

saludosss!!!

osoro
23/01/15, 17:43:01
Otra opcion es traer la info a una tabla interna por un select y luego

DESCRIBE TABLE IT_AEND LINES vl_index.
READ TABLE IT_AEND INTO wa_AEND INDEX vl_index.

sconoredhot
23/01/15, 18:04:20
Si tenes una tabla transparente con 800 mil registros no recomiendo
para nada bajartela entera, es mejor el select max.