Ich muss einen sehr ausführlichen Report erstellen. Bisher habe ich immer Joins benutzt, dies ist aber in dem Fall nicht möglich, da es zu viele Tabellen und Vorraussetzungen gibt. Daher benötige ich eine Methode, wie man nach und nach die Daten selektieren kann.
Ich habe mit einem Select circa ein Drittel der Daten selektiert, jetzt möchte ich die anderen hinzufügen, allerdings kann man ja bei einem Selekt nicht die interne Tabelle als WHERE Bedingung nehmen, um mit den Daten aus der internen Tabelle zu vergleichen.
Zum Verständnis der Code:
- Code: Alles auswählen
TYPES: BEGIN OF lty_gt_vbakvbap,
vbeln TYPE vbeln, " Vertriebsbelegnummer (VBAK)
auart TYPE auart, " Verkaufsbelegart (VBAK)
erdat TYPE erdat, " Angelegt am (VBAK)
vkorg TYPE vkorg, " Verkaufsorganisation (VBAK)
vkbur TYPE vkbur, " Verkaufsbüro (VBAK)
vkgrp TYPE vkgrp, " Verkäufergruppe (VBAK)
posnr TYPE posnr_va, " Position (VBAP)
matnr TYPE matnr, " Materialnnummer (VBAP)
arktx TYPE arktx, " Bezeichnung (VBAP)
werks TYPE werks_ext, " Werk (VBAP)
kwmeng TYPE kwmeng, " kumulierte Menge (VBAP)
meins TYPE meins, " Basismengeneinheit (VBAP)
END OF lty_gt_vbakvbap.
DATA: gt_vbakvbap TYPE SORTED TABLE OF lty_gt_vbakvbap WITH NON-UNIQUE KEY vbeln.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_vbakvbap
FROM vbak AS a
INNER JOIN vbap AS b ON a~vbeln = b~vbeln
WHERE a~audat IN s_audat
AND a~auart IN s_auart
AND b~werks IN s_werks
ORDER BY a~vbeln.
Nun hätte ich z.B. noch gerne Daten aus der EKBE wie EBELN, EBEP und BUDAT. (Und VGABE muss auf 1 gesetzt sein, da es nur Wareneingang sein soll.) Die EBELN zu meinen VBELN kann ich über die Tabelle EKKN finden.
Aber wie setze ich das um, da meine VBELN doch in einer internen Tabelle stehen, wie selektiere ich anhand davon von einer Datenbanktabelle?
Ich danke im Vorraus für Hilfe, ich bin noch sehr neu in ABAP und habe wie gesagt bisher immer nur Joins benutzt.