MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   SELECT INTO TABLE sobre tabla interna con datos. (foro/showthread.php?t=66047)

kachalot 01/02/13 13:02:24

SELECT INTO TABLE sobre tabla interna con datos.
 
Hola, buenas tardes,


necesito hacer 2 SELECT..... INTO TABLE sobre la misma tabla interna:


No es mi caso, pero por ejemplo:

primero

SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF TABLE itab1.

segundo

SELECT * FROM SBOOK INTO CORRESPONDING FIELDS OF TABLE itab1.

Imaginaros que se puede y que coinciden claves primarias.

El segundo SELECT INTO hace un INSERT, MODIFY, APPEND...?
o DELETE y luedo INSERT, MODIFY, APPEND...?
Es decir, mantendría los datos del primer SELECT INTO?


gracias por vuestro tiempo!!

mauro_ARG 01/02/13 13:32:43


Por que no utilizas un JOIN?.

Mauricio Hidalgo 02/02/13 14:14:35

A tu pregunta: El segundo select reemplaza el contenido de itab1 tras el primer select.

para adicionar registros a los ya existentes seria así:

SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF TABLE itab1.


SELECT * FROM SBOOK APPENDING CORRESPONDING FIELDS OF TABLE itab1.


Saludos

kachalot 04/02/13 08:56:17

No hago JOIN, bueno, LEFT OUTER JOIN, porque las tablas que tengo que utilizar, que no son las de vuelo, pueden contener miles de registros por no decir uno o dos millones. Y creo que si lo hago así, con 3 JOIN, sería poco optimo.

Probaré con el APPENDING y os comento.


Muchas gracias Mauricio, mauro por contestar!!

mauro_ARG 04/02/13 12:10:07

Tenes que tener cuidado con el APPENDING, ya que te agrega registros y te puede generar inconsistencias, si lo que queres es s que los registros se combinen entre las dos tablas. Por eso es recomendable utilizar el JOIN, es mas optimo y para eso fue diseñado.

O sino la otra es usar la sentencia FOR ALL ENTRIES IN itab dentro del select.

Ahora si lo que queres es tener todos los registros de las dos tablas, entonces lo mejor es tener dos tablas internas separadas.

Rodolfo SAP 12/02/13 20:50:19

Usa un APPENDING
 
Si usas los dos select como describes terminaras borrando los datos del primer select.

Si lo que necesitas es la extracción de ambas tablas bajo la misma llave usa un JOIN.

Si usas el APPENDING deberas sortear la tabla y eliminar llaves duplicadas o en su caso condensar la informacion y armar una sola linea llave.

Saludos.


Husos Horarios son GMT. La hora en este momento es 22:45:57.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web