Into corresponding fields para 2 tablas

Hola a todos.

Estoy tratando de hacer un SELECT en donde los campos que traigo quiero que se almacenen en dos tablas internas diferentes. Algo así:

SELECT A~A1 A~A2 A~A3 B~B1 B~B2 B~B3
CORRESPONDING FIELDS OF TABLE IT_TABLE1 "aquí deseo agregar que los campos de B se almacenen en IT_TABLE2"
FROM AAA AS A
INNER JOIN BBB AS B
ON A~A1 = B~B1

Hay alguna forma de implementar este caso o se tiene que hacer forzosamente con un SELECT SINGLE ?

Gracias de antemano.

No creo que se pueda, pero yo soy nuevo xD…

Desconozco el volumen de información que manejes en el select, pero talvez sería mejor hacer 2 SELECTs uno para cada tabla, y así solo extraerías unicamente las columnas necesarias para cada tabla interna…

Otra opción, sería rellenar la tabla 2 con un LOOP (despues del select en la tabla 1), utilizando MOVE-CORRESPONDING

Estare al pendiente por si lo que necesitas efectivamente si se puede realizar…

Saludos!

para este caso no aplicaría ya que estoy utilizando un INNER JOIN, bueno si te referías hacer el SELECT dos veces con el INNER JOIN si podría ser la solución pero no la ideal.

Pero el INNER JOIN es para unir dos (o más) tablas en una sola…y tu buscas separar los resultados segun la tabla en diferentes tablas internas :expressionless:

Como yo lo pienso, sería así… pero talvez no entendí tu requerimiento :expressionless:

SELECT A~A1 A~A2 A~A3
CORRESPONDING FIELDS OF TABLE IT_TABLE1
FROM AAA AS A
INNER JOIN BBB AS B
ON A~A1 = B~B1
SELECT B~B1 B~B2 B~B3
CORRESPONDING FIELDS OF TABLE IT_TABLE2
FROM AAA AS A
INNER JOIN BBB AS B
ON A~A1 = B~B1
2 Me gusta

Si, se debe hacer como dice @pumatronx.

La verdad que hacer un inner join guardando en dos tablas internas a la vez no se puede.

Lo que si podes realizar despues de hacer el inner join habiendo guardado todo en una tabla,

es hacer un loop y separarlos ahi, guardando unos campos en una y otros en otra.

Saludos.

2 Me gusta

Gracias por la aclaración, es verdad ese es el propósito del INNER JOIN

@sconoredhot gracias por la aclaración.

Necesitas la sentencia ADD-CORRESPONDING, usar inner joins afecta el rendimiento
te dejo la descripcion:

ADD-CORRESPONDING
Definición
Añade el contenido de los componentes de un registro sobre otro.
Sintaxis:
ADD-CORRESPONDING TO .
Añade el contenido de los componentes del registro sobre el registro , para aquellos componentes que tengan
el mismo nombre.
Ejemplo:
DATA: BEGIN OF VECTOR,
X TYPE I,
Y TYPE I,
LENGTH TYPE I,
END OF VECTOR,

BEGIN OF CIRCLE,
VOLUME TYPE P
Y TYPE P,
RADIUS TYPE I,
X TYPE I,
END OF CIRCLE.

ADD-CORRESPONDING VECTOR TO CIRCLE.

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.