ABAPGROUPBY_CLAUSE - GROUPBY CLAUSE

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

SELECT - group

Kurzreferenz



Syntax

... GROUP BY { {col1 col2 ...} | (column_syntax) } ... .

Wirkung

Der Zusatz GROUP BY fasst Gruppen von Zeilen, die in den angegebenen Spalten col1 col2 ... den gleichen Inhalt haben, in der Ergebnismenge zu einer Zeile zusammen.

Die Verwendung von GROUP BY setzt voraus, dass hinter SELECTnur einzelne Spalten, nicht jedoch alle Spalten über * angegeben sind. Wenn GROUP BYverwendet wird, müssen dort alle Spalten aufgeführt werden, die hinter SELECT direktund nicht als Argument einer Aggregatfunktion angegeben sind. Umgekehrt müssen bei Verwendungvon GROUP BY alle hinter SELECT aufgeführten Spalten, die nicht hinter GROUP BY aufgeführt sind, als Argument einerAggregatfunktionangegeben werden. Die Aggregatfunktionen legen fest, wie der Inhalt dieser Spalten in der zusammengefassten Zeile aus den Inhalten aller Zeilen einer Gruppe bestimmt wird.

Hinter GROUP BY müssen die gleichenSpaltenbezeichnerwie hinter SELECT angegeben werden. Die Angabe kann entweder statisch als Liste col1 col2... oder dynamisch als eingeklammertes Datenobjekt column_syntax angegeben werden, das beiAusführung der Anweisung die Syntax der statischen Angabe enthält oder initial ist. Für column_syntax gilt das Gleiche wie bei der dynamischen Spaltenangabe hinter SELECT.

Ist der Inhalt von column_syntax initial, werden entweder alle oder keine Zeilen zusammengefasst.Die Spalten hinter SELECT müssen dann entweder ausschließlich als Argumente vonAggregatfunktionen oder ausschließlich direkt aufgeführt sein, andernfalls kommt es zur behandelbaren Ausnahme CX_SY_OPEN_SQL_DB.

Die hinter GROUP BY angegebenen Spalten dürfen nicht vom Typ STRING oder RAWSTRING sein und bei der Verwendung von GROUP BY kann nicht aufPool- oderCluster-Tabellen zugegriffen werden.

Hinweis

Bei der Verwendung von GROUP BY umgeht die Anweisung SELECT die SAP-Pufferung.

Beispiel

Die Zeilen der Datenbanktabelle SFLIGHT, diein der Spalte CARRID den gleichen Inhalt haben, werden zusammengefasst. Die kleinsten und größtenWerte der Spalte PRICE werden für jede dieser Gruppen bestimmt und in die zusammengefasste Zeile gestellt.

DATA: carrid  TYPE sflight-carrid,
      minimum TYPE p DECIMALS 2,
      maximum TYPE p DECIMALS 2.

SELECT carrid MIN( price ) MAX( price )
       FROM sflight
       INTO (carrid, minimum, maximum)
       GROUP BY carrid.
  WRITE: / carrid, minimum, maximum.
ENDSELECT.

Beispiel

Nach Eingabe einer beliebigen Spalte der DatenbanktabelleSPFLI werden die selektierten Daten nach dieserSpalte gruppiert, d.h. dass gleiche Einträge zusammengefasst werden. In count wird dieAnzahl der Flugverbindungen für die unterschiedlichen Werte in der Spalte spflicol bestimmt.Gibt man z.B. "cityfrom" als spflicol ein, so wird in count die Anzahl der Ziele für jeden Abflugort bestimmt.

PARAMETERS spflicol TYPE c LENGTH 20.

DATA: dref      TYPE REF TO data,
      long_name TYPE string,
      count     TYPE i,
      fieldlist TYPE string.

FIELD-SYMBOLS <fs> TYPE any.

long_name = 'spfli-' && spflicol.
CREATE DATA dref TYPE (long_name).
ASSIGN dref->* TO <fs>.

fieldlist = spflicol && ' count(*)'.

SELECT DISTINCT (fieldlist)
       INTO (<fs>, count)
       FROM spfli
       GROUP BY (spflicol).
  WRITE: / <fs>, count.
ENDSELECT.



Fill RESBD Structure from EBP Component Structure   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 5338 Date: 20120526 Time: 212636     triton ( 239 ms )