Collect

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Geht es darum, bei einer Tabelle numerische Felder zu addieren, ist der Befehl "Collect" performanter als wenn man die Addition selber vornehmen würde.

Beispiel aus der SAP-Hilfe:

Verdichtetes Einfügen von Daten der Datenbanktabelle sflight in die interne Tabelle seats_tab. Die Zeilen, bei denen die Schlüsselkomponenten carrid und connid gleich sind, werden verdichtet, indem die Anzahl der belegten Plätze in der numerischen Komponente seatsocc hinzuaddiert werden.

DATA: BEGIN OF seats,
      carrid TYPE sflight-carrid,
      connid TYPE sflight-connid,
      seatsocc TYPE sflight-seatsocc,
END OF seats.

DATA seats_tab LIKE HASHED TABLE OF seats WITH UNIQUE KEY carrid connid. 

SELECT
  carrid
  connid
  seatsocc
FROM sflight
INTO seats.

COLLECT seats INTO seats_tab.
ENDSELECT. 

Bei Verwendung der Anweisung collect sind die diesbezüglichen Beschränkungen zu beachten, insbesondere wird aus den zeichenorientierten Feldern der Tabelle der Schlüssel gebildet, es ist kein Schlüssel möglich, der nicht zeichenorientierte Feldtypen enthält. Doppelte Sätze (auf den Key bezogen) sind in mit collect befüllten Tabellen nicht möglich.