MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 01/02/13, 13:02:24
kachalot kachalot is offline
Junior Member
 
Fecha de Ingreso: ene 2013
Mensajes: 9
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!!
Responder Con Cita
  #2  
Viejo 01/02/13, 13:32:43
mauro_ARG mauro_ARG is offline
Member
 
Fecha de Ingreso: abr 2009
Mensajes: 87

Por que no utilizas un JOIN?.
Responder Con Cita
  #3  
Viejo 02/02/13, 14:14:35
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
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
Responder Con Cita
  #4  
Viejo 04/02/13, 08:56:17
kachalot kachalot is offline
Junior Member
 
Fecha de Ingreso: ene 2013
Mensajes: 9
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!!
Responder Con Cita
  #5  
Viejo 04/02/13, 12:10:07
mauro_ARG mauro_ARG is offline
Member
 
Fecha de Ingreso: abr 2009
Mensajes: 87
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.
Responder Con Cita
  #6  
Viejo 12/02/13, 20:50:19
Rodolfo SAP Rodolfo SAP is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 89
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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 17:20:44.


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