PDA

Ver la Versión Completa : Comparacion de dos tablas


Damian
16/02/07, 18:11:00
Soy nuevo en sap, y estoy teniendo un problema tengo dos tablas (A y B) de la cual en la tabla B tengo registros que pueden estar en la tabla A a los cuales debo marcalos para luego borrarlos.
Estas tablas no estan creadas en el diccionario sino dentro del programa, alguien podra decirme como debo realizar la comparación.
Muchas Gracias.

Gregoryg
17/02/07, 02:08:53
Hola
Dejame ver si te entendi, tienes dos tablas y quiere eliminar los registros de una tabla dependiendo de los que estan en la otra.

Bueno lo que se me ocurre hacer le haces un loop a la tabla B ibas haciendo un read table contra la tabla A con los campos que tienes en la tabla B que son Claves en la tabla A. si la variable SY-SUBRC toma el valor de cero conseguistes el registro en la tabla A en la variable SY-TABIX tienes el indice para hacer el delete a tu tabla Interna A.

Espero haberte Ayudado

Saludos

Damian
19/02/07, 14:29:08
Hola
Dejame ver si te entendi, tienes dos tablas y quiere eliminar los registros de una tabla dependiendo de los que estan en la otra.

Bueno lo que se me ocurre hacer le haces un loop a la tabla B ibas haciendo un read table contra la tabla A con los campos que tienes en la tabla B que son Claves en la tabla A. si la variable SY-SUBRC toma el valor de cero conseguistes el registro en la tabla A en la variable SY-TABIX tienes el indice para hacer el delete a tu tabla Interna A.

Espero haberte Ayudado

Saludos

Ante todo muchas gracias, te comento lo realice como vos lo decis pero en vez de usar el read table use el SEARCH, como soy nuevo en sap ahora la duda es cual de los dos es mejor o son iguales.

Saludos.

ibecerra
19/02/07, 16:26:34
Que tal definitivamente , lo mejor es el READ table, el search es solo para ubicar una cadena ..
a ver si con este ejemplo se te puede ayudad.,
donde
A tiene los camos
a1
a2
a3
a4
B tiene los campos
a1
a2
a3
a5

loop at A.
wsytabix = sy-tabix.
read table B with key a1 = A-a1
a2 = A-a2.
if sy-subrc eq 0.
b-a3 = a-a3.
modify b index wsytabix.
endif.
endlloop.

Damian
21/02/07, 13:26:31
Muchas Gracias - Ahora entendi y funciono.