ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Externe Daten verarbeiten →  ABAP-Datenbankzugriffe →  Open SQL →  Open SQL - Lesende Zugriffe →  SELECT → 

SELECT - HAVING

Kurzreferenz

Syntax

... HAVING sql_cond ...

Wirkung

Der Zusatz HAVING schränkt die Anzahl von zu Gruppen zusammengefassten Zeilen in der Ergebnismenge durch einen logischen Ausdruck sql_cond für diese Zeilen ein. Die Syntax des logischen Ausdrucks sql_cond entspricht der Syntax des logischen Ausdrucks sql_cond der WHERE-Bedingung. Der logische Ausdrucks wertet die Inhalte von Zeilengruppen aus.

Die Operanden der relationalen Ausdrücke des logischen Ausdrucks können sein:

Wenn eine HAVING-Klausel angegeben ist, müssen alle Spalten der SELECT-Liste, die dort keine Argumente von Aggregatfunktionen sind, hinter GROUP BY aufgeführt sein. Wenn die SELECT-Liste als * angegeben ist, kann es keine HAVING-Klausel ohne GROUP BY-Klausel geben. Bei Pool- und Cluster-Tabellen kann der Zusatz HAVING nicht angegeben werden.

Hinweise

Beispiel

Auslesen der Anzahl gebuchter Raucher- bzw. Nichtraucherplätze pro Flugdatum einer Verbindung.

PARAMETERS: p_carrid TYPE sbook-carrid,
            p_connid TYPE sbook-connid.

TYPES: BEGIN OF sbook_type,
         fldate  TYPE sbook-fldate,
         smoker  TYPE sbook-smoker,
         smk_cnt TYPE i,
       END OF sbook_type.

DATA sbook_tab TYPE TABLE OF sbook_type.

SELECT fldate, smoker, COUNT( * ) AS smk_cnt
       FROM sbook
       WHERE connid = @p_connid
       GROUP BY carrid, fldate, smoker
       HAVING carrid = @p_carrid
       ORDER BY fldate, smoker
       INTO CORRESPONDING FIELDS OF TABLE @sbook_tab.

Beispiel

Siehe SQL-Ausdrücke, Verwendung in Aggregatausdrücken.