2.3 · Sélection des enregistrements (filtres)

Nivel 2 · Niveau 2 · Intermédiaire : tri, regroupement & sélection

2.3Sélection des enregistrements (filtres)

Objetivo: Filtrer avec le Select Expert et pousser le filtre côté serveur pour la performance.
Tiempo estimado: 10 min · lectura autónoma · Si solo tienes 5 min: lee «Lo esencial en 30s» + el esquema.

Lo esencial en 30 segundos

  • Select Expert = champ + opérateur + valeur : égal, supérieur, entre, contient, dans une liste — combinés en ET/OU.
  • Filtrer change aussi les totaux : seuls les enregistrements retenus comptent — le périmètre décide du chiffre.
  • Serveur d'abord : conditions simples sur champs de base → WHERE poussé à la base — vérifier via Show SQL Query.

Mini-cas filé — Farès et l'état qui mélangeait deux années

QUERY LENGTH LIMIT EXCEEDED. MAX ALLOWED QUERY : 500 CHARS

Suite du fil rouge 2.2 : les totaux de Farès passent à périmètre filtré — et continue en 2.4 et 2.5.

1. Filtrer avec le Select Expert

QUERY LENGTH LIMIT EXCEEDED. MAX ALLOWED QUERY : 500 CHARS

2. Côté serveur vs côté client (performance)

QUERY LENGTH LIMIT EXCEEDED. MAX ALLOWED QUERY : 500 CHARS

3. Logique et interactivité

QUERY LENGTH LIMIT EXCEEDED. MAX ALLOWED QUERY : 500 CHARS

Error frecuente de interpretación: « Filtrer ne change que l'affichage, pas les totaux ». Faux : la sélection des enregistrements exclut les lignes du rapport ET des résumés — un total filtré n'est plus le total global. La règle de Farès : après chaque filtre, relire les totaux comme des chiffres à périmètre (année + région), et vérifier le WHERE pour garder la performance côté serveur.
Filtrer : où s'exécute le filtre ? Côté serveur pour la performance Select Expert Champ +opérateur + valeur (ET/OU)Côté serveur La base filtrevia WHERE (rapide)Côté client Tout rapatriépuis filtré (lent)
Côté serveur pour la performance
Versión en texto del esquema (SEO / lectores de pantalla / traducción): 1) Farès FILTRE : Select Expert — date entre 01/01 et 31/12 ET région = Nord ; seuls ces enregistrements s'affichent et comptent dans les totaux. 2) Il POUSSE : conditions simples sur champs de base, vérifiées dans le WHERE via Show SQL Query — la base ne renvoie que l'utile. 3) Il SOIGNE la logique : ET pour restreindre, OU pour élargir, parenthèses explicites et « dans la liste » pour les valeurs alternatives. Leçon : un filtre précis à périmètre explicite, exécuté côté serveur.

🔎 Ejemplo concreto — 🔎 Exemple concret — Un filtre poussé à la base

L'état de Farès, filtré sur l'année et la région, avec contrôle serveur :

{Commandes.DateCommande} in Date(2026, 1, 1) to Date(2026, 12, 31)
and {Clients.Region} = "Nord"

Show SQL Query → la condition apparaît dans le WHERE : filtrage côté serveur, rapide.

Lecture : formule de sélection simple sur champs de base, traduite en WHERE.

Leçon : éviter les formules complexes dans le filtre pour ne pas basculer côté client.

Vocabulario de la sección

Sélection des enregistrements
Ne conserver que les enregistrements satisfaisant une condition (année, région, seuil) via le Select Expert ; filtre l'affichage ET les totaux.

Ejemplo sencillo: Farès ne garde que les commandes 2026 de la région Nord.

Lo que no es: un tri qui ordonne sans exclure.

Reflejo: périmètre voulu = sélection explicite.

Select Expert
L'outil de filtrage : champ + opérateur (égal, entre, contient, dans une liste…) + valeur, avec combinaison ET/OU.

Ejemplo sencillo: Farès combine date entre deux bornes ET région égale à Nord.

Lo que no es: l'éditeur de formules de calcul (niveau 3).

Reflejo: filtrer = champ + opérateur + valeur.

Formule de sélection
La traduction du filtre en formule (Record Selection Formula), éditable, idéalement convertie en clause WHERE SQL.

Ejemplo sencillo: La sélection de Farès devient une formule sur date et région, visible dans Show SQL Query.

Lo que no es: une formule de calcul affichée dans une section.

Reflejo: filtre = formule vérifiable dans le SQL.

Côté serveur / côté client
Serveur : la base filtre via WHERE (rapide) ; client : Crystal rapatrie tout puis filtre localement (lent sur gros volumes).

Ejemplo sencillo: Le filtre simple de Farès reste serveur ; une formule complexe le ferait basculer en local.

Lo que no es: deux façons équivalentes sans impact performance.

Reflejo: simple sur champ de base = serveur.

En la práctica — En pratique — Filtrer les enregistrements

  1. Ouvrez le Select Expert : champ + opérateur (égal, entre, supérieur…) + valeur.
  2. Combinez plusieurs conditions si besoin (ET/OU) en soignant la logique (ET restreint, OU élargit ; parenthèses).
  3. Privilégiez des conditions SIMPLES sur les champs de la base pour un filtrage CÔTÉ SERVEUR ; évitez les formules complexes.
  4. Vérifiez le SQL généré (« Show SQL Query ») ; contrôlez que les totaux reflètent le filtre.
Vous filtrez précisément les enregistrements (et donc les totaux), en privilégiant le côté serveur pour la performance : le rapport montre les bonnes données, vite.

Script prêt à dire — justifier le périmètre filtré (30 s)

« Cet état couvre l'année en cours, région Nord : le filtre exclut le reste, donc les totaux sont à ce périmètre — ce n'est plus le global. Le filtre s'exécute côté base, vérifié dans le SQL : on ne rapatrie que l'utile, c'est rapide même sur l'historique complet. Si vous voulez une autre année, on passera par un paramètre. »

À dire en montrant la formule de sélection de Farès puis le WHERE dans Show SQL Query.

Modèle copier-coller — formules de sélection valides

{Commandes.DateCommande} in Date(2026, 1, 1) to Date(2026, 12, 31)
{Commandes.DateCommande} in Date(2026, 1, 1) to Date(2026, 12, 31) and {Clients.Region} = "Nord"
{Commandes.Montant} > 1000
{Clients.Ville} in ["Alger", "Oran"]

Seuil de montant

Farès ne garde que les commandes supérieures à 1 000 : le filtre resserre le périmètre des totaux.

Deux wilayas

Alger OU Oran : Farès utilise « est dans la liste » plutôt qu'un ET impossible sur un même champ.

Filtre qui rame

Filtre posé sur une formule complexe : tout est rapatrié puis trié en local — Farès revient à des champs de base.

Parenthèses oubliées

« A ET B OU C » ambigu : Farès groupe explicitement « (A OU B) ET C » pour le résultat voulu.

✓ Buenas prácticas

  • Formulez des conditions simples sur les champs de base (côté serveur).
  • Pour plusieurs valeurs d'un même champ, utilisez « est dans la liste ».
  • Vérifiez le WHERE généré pour confirmer le filtrage serveur.

✗ Errores frecuentes

  • Filtrer sur une formule complexe : force le filtrage local (lent).
  • Confondre ET/OU (« Ville = Alger ET Ville = Oran » ne renvoie rien).
  • Mélanger ET/OU sans parenthèses (résultat ambigu).

Puntos clave

  • Le Select Expert filtre les lignes (champ + opérateur + valeur), combinables (ET/OU). Il filtre l'affichage ET les totaux.
  • CRUCIAL : filtrage CÔTÉ SERVEUR (poussé à la base, rapide) vs CÔTÉ CLIENT (tout rapatrié puis filtré, lent).
  • Conditions SIMPLES sur les champs de base = côté serveur ; les formules complexes forcent le local. Vérifier « Show SQL Query ».
  • Attention à la LOGIQUE (ET restreint, OU élargit ; parenthèses). Pour un filtre choisi à l'exécution, utiliser des PARAMÈTRES (2-4).

Défi 48h — appliquez demain

Sur votre état réel : posez un filtre à 2 conditions (période ET catégorie), vérifiez le WHERE dans Show SQL Query, testez un « dans la liste », puis relisez vos totaux au nouveau périmètre.

Lista de salida de la sección
  • Je peux filtrer (champ + opérateur + valeur, ET/OU) via le Select Expert.
  • Je sais garder le filtre côté serveur (conditions simples, WHERE vérifié).
  • Je relis mes totaux au périmètre filtré.
Auto-évaluation 1-5 : est-ce que mon filtre est poussé à la base ?est-ce que ma logique ET/OU donne le périmètre voulu ?

Preguntas frecuentes

Pourquoi le filtrage côté serveur, et comment s'en assurer ?

QUERY LENGTH LIMIT EXCEEDED. MAX ALLOWED QUERY : 500 CHARS

Comment combiner ET/OU sans se tromper ?

QUERY LENGTH LIMIT EXCEEDED. MAX ALLOWED QUERY : 500 CHARS

Comprueba tu comprensión

Quel filtrage privilégier pour la performance ?

Recursos adicionales (opcional, para ir más allá)

Examen del nivel 2Preguntas inéditas y más difíciles para validar tus conocimientos