Code: Alles auswählen.
LOOP AT gt_data INTO gst_data.
* Selektion aus der Tabelle A006
SELECT *
APPENDING CORRESPONDING FIELDS OF TABLE gt_a006
FROM a006
WHERE ( kschl = 'PR00'
OR kschl = 'ZMPR' )
AND kappl = 'V'
AND vkorg = '0001'
AND vtweg = '01'
AND matnr = gst_data-artikelnummer
AND datab LE '20050701'
AND datbi GE '20050701'
AND waerk = 'EUR'.
* Selektion der Preise (KBETR) aus der Tabelle KONP
SELECT *
APPENDING CORRESPONDING FIELDS OF TABLE gt_konp
FROM konp
FOR ALL ENTRIES IN gt_a006
WHERE knumh = gt_a006-knumh
AND kschl = gt_a006-kschl.
ENDLOOP.
Code: Alles auswählen.
LOOP AT gt_data INTO gst_data.
* Selektion aus der Tabelle A006
SELECT *
APPENDING CORRESPONDING FIELDS OF TABLE gt_a006
FROM a006
WHERE ( kschl = 'PR00'
OR kschl = 'ZMPR' )
AND kappl = 'V'
AND vkorg = '0001'
AND vtweg = '01'
AND matnr = gst_data-artikelnummer
AND datab LE '20050701'
AND datbi GE '20050701'
AND waerk = 'EUR'.
* Selektion der Preise (KBETR) aus der Tabelle KONP
SELECT *
APPENDING CORRESPONDING FIELDS OF TABLE gt_konp
FROM konp
FOR ALL ENTRIES IN gt_a006
WHERE knumh = gt_a006-knumh
AND kschl = gt_a006-kschl.
MOVE gst_data-artikelnummer TO gst_konp-matnr.
MODIFY gt_konp FROM gst_konp
TRANSPORTING matnr
WHERE matnr EQ space. "<<< dann geht's auch mit dem Nachbar...
ENDLOOP.
Ja.Nici hat geschrieben: Liegt es vielleicht an der Bedingung WHERE matnr EQ space?
Code: Alles auswählen.
APPEND LINES OF temp_a006 TO gt_a006.
Code: Alles auswählen.
MODIFY tmp_konp FROM gst_konp
TRANSPORTING matnr
WHERE matnr NE gst_konp-matnr. "<<< dann geht's auch mit dem Nachbar. ( auch wenn dieser leer ist )
Danke für den Tipp, Enno!Ausserdem solltest du unbedingt vor dem SELECT FOR ALL ENTRIES abfragen, ob die Tabelle gt_a006 auch gefüllt ist!! Ansonsten selektierst du ALLE Einträge aus der KONP!
Nicht ganz. Der "for all entries" ist schon ok - aber du sollst "INTO" statt "APPENDING" machen und dafür in eine temporäre Tabelle tmp_konp.Meinst du damit ich soll den Select genau so machen wie den ersten mit der temp-Tabelle und ohne den Zusatz "for all entries"?
Code: Alles auswählen.
LOOP...
...
..
SELECT *
INTO CORRESPONDING FIELDS OF TABLE gtemp_konp
FROM konp
FOR ALL ENTRIES IN gt_a006
WHERE knumh = gt_a006-knumh
AND kschl = gt_a006-kschl.
MOVE gst_data-artikelnummer TO gtemp_konp-matnr.
MODIFY gtemp_konp.
APPEND LINES OF gtemp_konp TO gt_konp.
..
...
ENDLOOP.
Code: Alles auswählen.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE gtemp_konp
FROM konp
FOR ALL ENTRIES IN gt_a006
WHERE knumh = gt_a006-knumh
AND kschl = gt_a006-kschl.
Code: Alles auswählen.
MODIFY gtemp_konp.
Code: Alles auswählen.
APPEND LINES OF gtemp_konp TO gt_konp.