FireDAC.Comp.DataSet.TFDAggregate.Expression
Delphi
property Expression: String read FExpression write SetExpression;
C++
__property System::UnicodeString Expression = {read=FExpression, write=SetExpression};
Inhaltsverzeichnis
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 |
---|---|
|
Summiert die Argumentwerte. |
|
Gibt den kleinsten Argumentwert zurück. |
|
Gibt den größten Argumentwert zurück. |
|
Berechnet den Durchschnittswert eines Arguments, der aus der Summe aller Werte dividiert durch die Anzahl aller Werte, die nicht NULL sind, gebildet wird. |
|
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. |
|
Gibt den ersten Argumentwert zurück. |
|
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';