PDA

Ver la Versión Completa : duda con for all entries


vctr1005
13/06/16, 19:27:20
hola a todos... estoy haciendo un report de MM y necesito extraer datos de varias tablas como son: mara, makt, mbew, mard. Para ello declare una estructura:

DATA: BEGIN OF st_materiales.
data: matnr TYPE mara-matnr.
data: maktx TYPE makt-maktx.
data: bwkey TYPE mbew-bwkey.
data: lgort TYPE mard-lgort.
data: mstae TYPE mara-mstae.
data: bwtty TYPE mbew-bwtty.
data: lbkum TYPE mbew-lbkum.
DATA: END OF st_materiales.

y (hasta el momento) 2 tablas internas. en una tengo esto:

SELECT matnr bwtty bwkey FROM MBEW INTO CORRESPONDING FIELDS OF
TABLE ti_material_tipo
WHERE bwtty = 'E' AND bwkey = 'E025' AND lbkum >= 0.

y en la otra:

SELECT matnr mstae FROM MARA INTO CORRESPONDING FIELDS OF TABLE
ti_material_categ
FOR ALL ENTRIES IN ti_material_tipo
WHERE matnr = ti_material_tipo-matnr.
DELETE ADJACENT DUPLICATES FROM ti_material_tipo.

Pero necesito seguir acumulando los demas datos en esta misma tabla...COmo debo hacer? otra TI para juntar los demas datos..pq tengo dudas con el FOR ALL ENTRIES con mas de 2 tablas....soy muy nuevo en abap.

MUCHAS GRACIAS POR SU COLABORACION.

kreuzigen
13/06/16, 20:09:04
Si en realidad es necesario tener los datos que leas en una sola tabla, yo creo que deberias intentar un INNER JOIN entre las tablas que necesitas, con eso seleccionas solo los campos que necesitas y guardas los datos en la tabla interna, sería una solainstruccion SELECT pero sería demasiado grande, por ejemplo:

SELECT matnr bwtty bwkey
FROM MBEW as a INNER JOIN MARA as b ON a~matnr=b~matnr
INTO CORRESPONDING FIELDS OF TABLE ti_material_tipo
WHERE a~bwtty = 'E' AND a~bwkey = 'E025' AND lbkum >= 0.