HAVING

Cet élément est facultatif. Il spécifie quel enregistrement récapitulatif est transféré.

Portez une attention particulière à la différence entre HAVING et WHERE. WHERE fonctionne sur chaque enregistrement au sein d'un certain groupe. HAVING, en revanche, fonctionne uniquement sur les enregistrements récapitulatifs (enregistrements contenant des informations récapitulatives pour chaque groupe).

Avec cet élément, vous pouvez spécifier une ou plusieurs conditions qu'un enregistrement récapitulatif doit remplir avant d'être transféré.

Comme pour les conditions, spécifiez les tests qui doivent être appliqués aux enregistrements récapitulatifs. Les conditions de test spécifiées sont appliquées à tous les enregistrements récapitulatifs, seuls les enregistrements récapitulatifs qui réussissent les tests sont transférés. Pour transférer tous les enregistrements récapitulatifs, laissez l'élément HAVING vide.

Le format des conditions est le suivant :
function (field-name) test value
Cela indique :
fonctionnalité
Il s'agit d'une fonction prise en charge pour SELECT. Reportez-vous à la description de SELECT dans cette section pour plus de détails sur ces fonctions.
field-name
Il s'agit du champ défini par le format d'enregistrement spécifié dans FROM. Un nom de champ est acceptable même s'il n'a pas été spécifié dans SELECT.
Tester
Il s'agit du type de comparaison pour les fonctions. Les types sont répertoriés ci-dessous.
=
Egal à
<> ou ><
Différent de
>
Supérieur à
>=
Supérieur ou égal à
<
Inférieur à
<=
Inférieur ou égal à
valeur
Il s'agit d'une fonction opérant sur certains champs ou une constante. Reportez-vous à WHERE pour plus de détails sur les constantes, les expressions et les tests.
Note : Une virgule est traitée comme un point décimal. Par conséquent, ne séparez pas les nombres par des virgules.
Les conditions de test peuvent être combinées en utilisant un AND logique ou un OR logique. Lorsque AND et OR sont spécifiés, la comparaison AND est effectuée en premier. Jusqu'à 50 tests peuvent être spécifiés. En utilisant des parenthèses, l'ordre des opérations peut être modifié ou une description peut être ajoutée à une opération. Par exemple, vous pouvez indiquer :
COUNT(*) >=2 AND MAX(PRICE) > 100

Dans ce cas, les conditions suivantes s'appliquent concurremment : les groupes à transférer doivent contenir plus d'un enregistrement et les enregistrements récapitulatifs de ces groupes ne sont transférés que lorsque le prix maximum est supérieur à 100.

Si le champ souhaité est introuvable, sélectionner Browse affiche une liste des noms de tous les champs de l'enregistrement.

Le type, la longueur, le chiffre et le nombre de décimales de la valeur renvoyée pour chaque fonction sont :
 Type Length Digit Decimal Places SUM Packed 16 31 (Same as tested field) AVG Packed 16 31 31 (Total of the digit and decimal places of the field) COUNT Binary 4 10 0 MAX (Same as tested field) MIN (Same as tested field)