MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Unir tablas Internas (foro/showthread.php?t=39908)

josjul77 11/11/10 17:49:22

Unir tablas Internas
 
Buenas tardes.

Necesito unir 5 tablas internas despues de haberlas llenado con datos de tablas estandar, despues necesito llenar una tabla interna con las 5 anteriores, que es lo mas recomendable?

Gracias de Antemano.

minerva0112 11/11/10 18:29:16

Hola, que tipo de select utilizas para las busqueda de las tablas porque puedes hacer los select con un appending corresponde it_xxx, dependiendo de la estructura de tu tabla interna

mysmb2 11/11/10 18:58:37

si tenes 5 tablas internas, para unirlas tenes que recorre(LOOP) la de mayor jerarquía haciendo lecturas(READ) del resto de las tablas con el filtro correspondiente y luego agregarlo a una tabla con todos los campos que necesitas.

Saludos

josjul77 11/11/10 20:21:24



Hola, primero lleno las tablas internas con lo siguiente:

SELECT *
INTO CORRESPONDING FIELDS OF TABLE IT_MARA
FROM MARA.

SELECT *
INTO CORRESPONDING FIELDS OF TABLE IT_MARC
FROM MARC
WHERE WERKS ='C001'.

y asi tambien traigo datos de la MARD, MBEW y MVKE.

hasta aqui va bien todo, tengo la información que necesito en 5 tablas y tengo la tabla IT_MAT donde contengo los mismos campos de las 5 tablas, lo que necesito es con que sentencia o logica lleno IT_MAR?

Gracias.

VLozano 12/11/10 08:34:23

Consideraciones previas:
1- elimina esos asteriscos. Listas de campos forthewin! El asterisco reduce el rendimiento, ocupa memoria y ancho de banda innecesarios y hace que parezcas un vago (lo sé porque soy un vago)
2- considera la posibilidad de utilizar INNER JOINs. Son un asquete de escribir, pero dejar que el motor de la BD haga el trabajo sucio suele ser mejor. Si estás recuperando zillones de registros, quizá no vale la pena el JOIN, pero porsiaca.

Y a continuación un algoritmo (o el "cómo lo haría yo").

Selecciona los datos de la tabla principal (la MARA, supongo). Selecciona los datos de las tablas secundarias utilizando el FOR ALL ENTRIES (asegúrate de que la primera selección devuelve datos o se puede ir todo al carajo.

Haz loops sobre las tablas SECUNDARIAS actualizando la tabla principal :eek:

Es mucho más eficaz.

minerva0112 12/11/10 13:03:40

Hola, has solucionado????

Te puedo recomendar crear una vista Z con las 5 tablas, y en el codigo solo realizas un solo Select a la vista con sus repectivos filtros para el llenado de tu unica tabla interna.

saludos

josjul77 16/11/10 17:41:46



Si gracias a todos, ya lo he solucionado.


Husos Horarios son GMT. La hora en este momento es 03:30:03.

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