PDA

Ver la Versión Completa : Comparar registros de dos tablas


novato-sap
15/12/08, 13:13:33
Hola buenos dias, mi duda es la siguiente:

Quiero comparar dos tablas que tienen dos campos iguales al menos, y lo que tengo que hacer es comparar los registros de los campos cumpliendo que de todos los registros los campos sean iguales y si en una tabla tiene mas registros una que otra no hacer nada pero si se igualan el nº de registros, es decir son iguales, guardar ciertos campos en una tabla fisica.
La idea es comparar los campos de tablas internas.
¿Cómo puedo hacerlo?
Gracias.

DavidXD_XD
15/12/08, 13:44:45
Hola ... bueno nunca he probado el

IF itab1[] = itab2[].

Tal vez puede que funcione pero para estar mas seguro puedes realizar lo siguiente con un indicador

DATA: g_ind.

* Quiero ver si itab1 y itab2 son iguales
LOOP AT itab1.
READ TABLE itab2 INDEX sy-tabix.
IF itab1 NE itab2.
g_ind = 'X'.
EXIT.
ENDIF.
ENDLOOP

Estoy seguro que eso si funciona, porque entre estructuras si se puede hacer comparacion ... espero te pueda servir

alombardi
08/04/15, 15:15:55
* Comparando tablas
* ztbsd es tipo tabla

DATA: g_ind,
wa TYPE ztbsd_zterm,
itab1 TYPE STANDARD TABLE OF ztbsd WITH HEADER LINE ,
itab2 TYPE STANDARD TABLE OF ztbsd WITH HEADER LINE.

CLEAR: wa. wa-vkorg = '200'. APPEND wa TO itab1.
CLEAR: wa. wa-vkorg = '100'. APPEND wa TO itab1.
CLEAR: wa. wa-vkorg = '200'. APPEND wa TO itab1.

CLEAR: wa. wa-vkorg = '200'. APPEND wa TO itab2.
CLEAR: wa. wa-vkorg = '200'. APPEND wa TO itab2.
CLEAR: wa. wa-vkorg = '200'. APPEND wa TO itab2.

clear g_ind.
IF itab1[] NE itab2[]. "Compara DATOS ALL
g_ind = 'X'.
WRITE:/'gi_ind = ', g_ind .
ENDIF.
write:/ 'fin'.