Ansicht
Dokumentation
ABENCDS_AGGREGATE_FUNCTIONS_V2 - CDS AGGREGATE FUNCTIONS V2
SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up ROGBILLS - Synchronize billing plansDiese Dokumentation steht unter dem Copyright der SAP AG.
- CDS-View-Entität, aggr_expr
... ... ${ MAX( $[ALL$|DISTINCT$] operand )
$| MIN( $[ALL$|DISTINCT$] operand )
$| AVG( $[ALL$|DISTINCT$] operand AS dtype )
$| SUM( $[ALL$|DISTINCT$] operand )
$| COUNT( DISTINCT operand )
$| COUNT(*) $} ...
Wirkung
Aggregatausdruck in einer SELECT-Anweisung einer CDS-View-Entität. Ein Aggregatausdruck berechnet aus mehreren Zeilen des Operanden operand einen einzelnen Wert. Die Operanden dürfen nicht vom Typ LCHR, LRAW, STRING, RAWSTRING oder GEOM_EWKB sein. Die folgende Tabelle zeigt die möglichen Aggregatfunktionen:
Aggregatfunktion | Bedeutung | Ergebnistyp |
MAX | Gibt den Höchstwert von operand zurück. | Datentyp von operand |
MIN | Gibt den Mindestwert von operand zurück. | Datentyp von operand |
AVG | Durchschnittswert von operand. Muss mit dem Zusatz AS dtype angegeben werden. Die folgenden Datentypen werden unterstützt: INT1, INT2, INT4, INT8, FLTP, DEC, CURR, QUAN, D16N und D34N. | Muss hinter AS explizit angegeben werden. Mögliche Datentypen sind DEC, CURR, QUAN, D16N,D34N und FLTP. |
SUM | Summe von operand. Die folgenden Datentypen werden unterstützt: INT1, INT2, INT4, INT8, FLTP, DEC, CURR, QUAN, D16N und D34N. | Datentyp von operand |
COUNT | Bei Angabe von DISTINCT operand die Anzahl unterschiedlicher Werte von operand und bei Angabe von * die Anzahl der Zeilen der Ergebnismenge. | INT4 |
Bei Verwendung von ALL werden alle Zeilen der Ergebnismenge berücksichtigt (Standardeinstellung). Bei Verwendung von DISTINCT werden nur unterschiedliche Werte von operand berücksichtigt.
Für operand können angegeben werden:
- Ein Literal
- Ein Feld einer Datenquelle data_source der aktuellen CDS-View-Entität
- Ein Parameter
- Eine Sitzungsvariable
- Ein Pfadausdruck, der ein Feld einer Datenquelle data_source bezeichnet
- eine Fallunterscheidung CASE, die einen Wert zurück gibt
- Ein Cast-Ausdruck
- Eine eingebaute Funktion, die einen passenden Datentyp zurückgibt
- Ein Reuse-Ausdruck mit $projection
Der Datentyp des Ergebnisses wird bei der Aktivierung der CDS-View festgelegt und richtet sich nach der verwendeten Aggregatfunktion und nach dem Wertebereich der Datentypen der Operanden. Das Ergebnis der Aggregatfunktion AVG muss immer mit dem Zusatz AS dtype angegeben werden.
Beträge und Mengen in Aggregatsausdrücken
Falls der Operand operand einer Aggregatsfunktion ein CDS-Betragsfeld, ein CDS-Mengenfeld oder eine berechnete CDS-Menge ist, ist beim Ergebnistyp eventuell auch eine Referenzannotation erforderlich. In folgender Tabelle wird der Ergebnistyp abhängig vom Operandentyp aller verfügbaren Aggregatsfunktionen gezeigt.
Aggregatfunktion | Operandentyp | Ergebnistyp |
MAX, MIN, SUM, AVG | Betrag | Betrag |
MAX, MIN, SUM, AVG | Menge | Menge |
MAX, MIN, SUM, AVG | berechnete Menge | berechnete Menge |
COUNT | Betrag, Menge, berechnete Menge | Zahl vom Typ INT4 |
Operandenpositionen:
- Aggregatausdrücke können als Elemente einer SELECT-Liste verwendet werden, wo sie einen mit AS definierten alternativen Elementnamen benötigen und bedingen die Verwendung einer GROUP BY-Klausel.
- In einer HAVING-Bedingung können Aggregatausdrücke mit Literalen verglichen werden.
- Aggregatausdrücke können als Operanden in eingebauten Funktionen, Cast-Ausdrücken oder Fallunterscheidungen verwendet werden.
- Ein Aggregatausdruck kann als Operand lhs in der Bedingung cds_cond einer komplexen Fallunterscheidung oder als Operand rhs bei der Verwendung eines Vergleichsoperators als relationaler Operator verwendet werden.
Hinweise
- Die Namen der Aggregatfunktionen AVG, COUNT, MAX, MIN und SUM sind geschützt und dürfen nicht als selbstdefinierte Namen verwendet werden.
- Um eine CDS-View-Entität mit Aggregatausdrücken in der SELECT-Liste mit EXTEND VIEW ENTITY erweitern zu können, müssen mit der Annotation AbapCatalog.viewEnhancementCategory[ ] die Werte #PROJECTION_LIST und #GROUP_BY angegeben werden.
Beispiel
Mit folgender CDS-View-Entität wird die Verwendung der Aggregatausdrücke
AVG, SUM,
MIN, MAX und
COUNT(*) demonstriert. Zu jeder Aggregation ist ein alternativer Elementname definiert. Mit dem Programm
DEMO_CDS_AGGREGATE_VE wird die zugrundeliegende Datenbanktabelle gefüllt, die View-Entität gelesen und das Ergebnis zurückgegeben.
Beispiel
Mit folgender CDS-View-Entität wird die Schachtelung von Aggregatfunktionen und eingebauten CDS-Funktionen demonstriert. Solange sie ein Ergebnis mit passendem Datentyp zurückgeben, können eingebaute CDS-Funktionen als Operanden von Aggregatfunktionen dienen.
General Data in Customer Master ABAP Short Reference
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 14711 Date: 20240523 Time: 153310 sap01-206 ( 140 ms )