FireDAC.Comp.DataSet.TFDAggregate.Expression

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

property Expression: String read FExpression write SetExpression;

C++

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

Propriétés

Type Visibilité  Source Unité  Parent
property published
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDAggregate

Description

Spécifie l'expression à calculer.

Utilisez la propriété Expression pour spécifier le texte de la formule. La formule doit contenir des fonctions d'agrégation, sinon une exception est déclenchée. Les fonctions d'agrégation suivantes sont supportées :

Fonction

Description

SUM

Effectue la somme des valeurs de l'argument.

MIN

Renvoie la valeur minimale de l'argument.

MAX

Renvoie la valeur maximale de l'argument.

AVG

Calcule la valeur moyenne d'un argument, qui est le total de toutes les valeurs, divisé par le nombre de toutes les valeurs non NULL.

COUNT

Renvoie le nombre de toutes les valeurs non NULL d'un argument, si l'argument est spécifié. Sinon, elle renvoie le nombre de tous les enregistrements.

TFIRST

Renvoie la première valeur de l'argument.

TLAST

Renvoie la dernière valeur de l'argument.

Les fonctions d'agrégation opèrent sur des valeurs de champs ou sur des expressions construites à partir de valeurs de champs, constantes et appels de fonctions scalaires, en utilisant la syntaxe d'expressions FireDAC standard. Toutefois, plusieurs restrictions sont appliquées :

Remarques :

  • Vous pouvez créer des expressions en utilisant des opérateurs sur des valeurs d'agrégation avec d'autres valeurs d'agrégation ou constantes.
  • Vous ne pouvez pas combiner des valeurs d'agrégation avec des valeurs de champs, car de telles expressions sont ambiguës - rien n'indique quel enregistrement doit fournir la valeur de champ.
  • Vous ne pouvez pas imbriquer des fonctions d'agrégation.

L'expression est automatiquement évaluée par FireDAC et le résultat est assigné à la propriété Value. Tous les calculs sont effectués pour le groupe d'enregistrements en cours. Utilisez GroupingLevel pour spécifier le regroupement.

Exemple

 
 // 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';

Voir aussi