Ich arbeite erst seit ca. einen Monat mit ABAP und stehe vor meinem ersten Problem.
Wäre nett wenn Ihr mir helfen könntet.
Ich möchte auf mehrere Datenbanktabellen zugreifen.
Ich habe drei Tabellen.
bkpf, zdlkz_t, lfa1.
Aus bkpf möchte ich die Spalten ?MONAT? und ?GJAHR? auslesen.
Aus zdlkz_t möchte ich die Spalte ?ZDLKZ? auslesen.
Aus lfa1 möchte ich ?LAND1? auslesen.
In allen drei Tabellen ist nur eine Spalte gleich -> "MANDT".
Ich habe folgendes Coding, und weis leider nicht mehr weiter.
Sollte es vielleicht mit einem left outer join funktionieren? Hab leider keine Idee mehr.
Wäre echt super wenn Ihr mir helfen könntet.
Vielen Dank !!!!
Robin
DATA: wa_land TYPE lfa1-land1,
wa_perio TYPE bkpf-monat,
wa_gjahr TYPE bkpf-gjahr,
wa_zdlkz TYPE zdlkz_t-zdlkz.
SELECT-OPTIONS: so_land FOR wa_land,
so_perio FOR wa_perio.
PARAMETERS pa_gj TYPE bkpf-gjahr.
SELECT-OPTIONS: so_dlkz FOR wa_zdlkz.
TYPES: BEGIN OF t_sumla,
land1 TYPE lfa1-land1,
monat TYPE bkpf-monat,
gjahr TYPE bkpf-gjahr,
zdlkz TYPE zdlkz_t-zdlkz,
END OF t_sumla.
START-OF-SELECTION.
*##################
SELECT a~land1 b~monat b~gjahr c~zdlkz
INTO TABLE sumla_tab
FROM ( ( lfa1 AS a
INNER JOIN bkpf AS b
ON a~mandt = b~mandt )
INNER JOIN zdlkz_t AS c
ON c~mandt = a~mandt )
WHERE a~land1 = so_land AND
b~monat = so_perio AND
b~gjahr = pa_gj AND
c~zdlkz = so_dlkz.
Ich fürchte es ist nicht möglich diese Tabellen zusammenzubringen.
Es macht keinen Sinn die Tabellen mit dem Feld "MANDT" zu verknüpfen, da das Feld Mandant in allen Zeilen der Tabellen gleich ist. Da hilft dir auch kein Outer-Join.
Bekommst du denn überhaupt Ergebnisse vom select Befehl zurück? Oder bekommst du immer nen sy-subrc von 4? Kann mir eigentlich nicht vorstellen, das da überhaupt was zurück kommt, weil schon die SELECT-OPTIONS nicht funktionieren sollten, da sie ja nicht auf die Tabellenfelder verweisen, oder?
Hast du schonmal nach Funktionsbausteinen geguckt, die dir helfen könnten?
Was steht eigentlich in der kundeneigenen ZDLKZ_T Tabelle drin?
also die tabellen sollten eine logische verbindung zueinander haben. z.b. durch ein gleichnamiges schlüsselfeld oder durch ein feld, was im logischen zusammenhang zu einem feld aus der anderen tabelle steht.
ohne diesen zusammenhang ist es nicht möglich, eine verknüpfung unter den tabellen herzustellen.