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 ?
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…
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.
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.