es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ABAP Open SQL – La mejor manera de seleccionar de múltiples tablas.

Quiero hacer un informe a partir de una selección en varias tablas con filtros para aplicar.
Nada nuevo, pero me pregunto cuál es la mejor implementación posible (considerando que estoy utilizando un sistema S/4HANA).

Especificación

Datos
Por ejemplo, queremos recuperar datos de las tablas:

Encabezado de orden EKKO
Elemento de orden EKPO
Asignación de elemento de orden EKKN
Histórico de elemento de orden EKBE

Las tablas tienen las siguientes relaciones:

EKKO 1 – n EKPO
EKPO 1 – n EKKN
EKPO 1 – n EKBE

Filtros
Quisiéramos que al menos un elemento de cada tabla esté presente (INNER JOIN), si el encabezado no tiene un elemento, no cargamos los datos del encabezado, si el elemento no tiene una asignación, no cargamos los datos de la publicación, etc.
Aplicaríamos filtros a varias áreas de la tabla, por ejemplo:

Planta EKPO-WERKS
etc. ..

Implementación

Selección con join
La primera solución sería hacer una selección en todas las tablas con uniones y luego desarmarlas después con LOOP AT … GROUP BY … luego LOOP AT GROUP.

¡Pero ya me estoy haciendo preguntas!
¿En qué orden se debe seleccionar los datos? ¿EKKO->EKPO->etc. o EKPO->EKKO, etc.?

Selección múltiple
Seleccionar encabezados y luego los elementos según los encabezados, luego la asignación según los elementos, etc.

La ventaja es que es más legible (no estoy seguro) y tenemos menos datos redundantes, por otro lado, debemos aplicar ciertos filtros después de la selección en ABAP.

???

¿Otra solución?

Conclusión

Entonces, estoy un poco perdido y me gustaría tener su opinión.

Tags:  , ,

Answer

Comments are closed.