FireDAC.Comp.DataSet.TFDAggregate.Expression

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

property Expression: String read FExpression write SetExpression;

C++

__property System::UnicodeString Expression = {read=FExpression, write=SetExpression};

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
property published
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDAggregate

Beschreibung

Gibt den zu berechnenden Ausdruck an.

Mit der Eigenschaft Expression geben Sie einen Formeltext an. Die Formel muss Aggregatfunktionen enthalten, ansonsten wird eine Exception ausgelöst. Die folgenden Aggregatfunktionen werden unterstützt:

Funktion

Beschreibung

SUM

Summiert die Argumentwerte.

MIN

Gibt den kleinsten Argumentwert zurück.

MAX

Gibt den größten Argumentwert zurück.

AVG

Berechnet den Durchschnittswert eines Arguments, der aus der Summe aller Werte dividiert durch die Anzahl aller Werte, die nicht NULL sind, gebildet wird.

COUNT

Gibt die Anzahl aller Argumentwerte zurück, die nicht NULL sind, wenn das Argument angegeben ist. Ansonsten wird die Anzahl aller Datensätze zurückgegeben.

TFIRST

Gibt den ersten Argumentwert zurück.

TLAST

Gibt den letzten Argumentwert zurück.

Die Aggregatfunktionen arbeiten mit Feldwerten oder Ausdrücken, die aus Feldwerten, Konstanten und skalaren Funktionsaufrufen in der Standardausdruckssyntax von FireDAC gebildet werden. Es gelten allerdings folgende Einschränkungen:

Hinweise:

  • Sie können Ausdrücke erstellen, indem Sie Operatoren für aggregierte Werte mit anderen aggregierten Werten oder Konstanten verwenden.
  • Die Kombination von aggregierten Werten und Feldwerten ist nicht zulässig, da keine exakte Zuordnung möglich ist (es kann nicht angegeben werden, aus welchem Datensatz der Wert stammen soll).
  • Das Verschachteln von Aggregatfunktionen ist nicht zulässig.

Der Ausdruck wird automatisch von FireDAC ausgewertet und das Ergebnis der Eigenschaft Value zugewiesen. Alle Berechnungen werden für die aktuelle Datensatzgruppe durchgeführt. Mit GroupingLevel geben Sie die Gruppierung an.

Beispiel

 
 // count number of records with Discount > 0
 FDQuery1.Aggregates[0].Expression := 'COUNT(IIF(Discount > 0, 1, NULL))';
 
 // OK
 FDQuery1.Aggregates[0].Expression := 'COUNT(*) * 5';
 
 // INVALID - cannot combine aggregating function with field
 FDQuery1.Aggregates[0].Expression := 'AVG(Discount) * Amount';

Siehe auch