Ver Mensaje Individual
  #12  
Viejo 19/01/09, 13:46:43
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Buenas tardes, se que la pregunta esta respondida pero solo queria hacer algun comentario adicional por si a alguien le interesa

Creo que casi todos estaremos deacuerdo en que el INNER JOIN siempre que sea posible es la opcion mas optima pero utilizando FOR ALL ENTRIES se pueden obtener resultados "parecidos"

Si la tabla sobre la que vas a hacer FOR ALL ENTRIES es muy grande se debe partir en trozos (SAP comunmente utiliza fragmentos de 500 registros) y hacer las consultas sobre esos fragmentos

Tambien es recomendable ordenar la tabla por el orden que vayamos a acceder

Ejemplo:

LOOP AT gt_datos

IF sy-tabix MOD 500 = 0.

SORT gt_aux BY campo1 (los campos que vayamos a usar en el where)

SELECT (campos)
APPENDING TABLE tabla
FROM tabla
FOR ALL ENTRIES IN gt_aux
WHERE campo1 = gt_aux-campo1
AND...

CLEAR: gt_aux.
REFRESH: gt_aux.

ELSE.

MOVE_CORRESPONDING gt_datos TO gt_aux
APPEND gt_aux.
CLEAR gt_aux.

ENDIF.

ENDLOOP.
Responder Con Cita