IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Webi Discussion :

Comment faire un filtre d'agrégat (clause HAVING) [Vxi]


Sujet :

Webi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut Comment faire un filtre d'agrégat (clause HAVING)
    Bonjour,

    Je voudrais savoir comment faire un filtre sur un agrégat, autrement dit, comment générer la clause SQL HAVING.

    Ex: HAVING sum(montant) > 1000.

    J'ai essayé la clause WHERE de l'indicateur dans l'univers mais c'est vraiment une clause WHERE et pas HAVING même si on choisit la qualification "Indicateur" et j'ai essayé les filtres de rapport mais ils ne proposent qu'une liste de valeurs exactes.

    Je n'ai plus d'idées... merci de votre aide.

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    Il me semble que tu peux le faire dans le rapport avec un in

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =If((Sum([montant]) In ([variable]))>1000;1;0)
    Et apres, tu met un filtre sur cette variable en mettant la valeur 1

  3. #3
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Comment est défini ton indicateur dans ton univers ?

    A priori, si ton indicateur fait juste appel à une colonne et que la fonction Nombre() est définie dans les propriétés, ça ne fonctionne pas : ta condition sur l'indicateur sera dans le WHERE.
    Par contre, si tu définis ton indicateur avec une fonction count() dans le SELECT et Aucun dans les propriétés, ça fonctionne : ta condition est générée dans une clause HAVING

    ( J'ai pris l'exemple de count(), mais c'est valable aussi pour sum() )

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut
    Bonjour,

    Merci encore pour vos réponses.

    Citation Envoyé par TomDuBouchon Voir le message
    si tu définis ton indicateur avec une fonction count() dans le SELECT et Aucun dans les propriétés, ça fonctionne
    Effectivement, ça fonctionne


    Citation Envoyé par EmmanuelleC Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =If((Sum([montant]) In ([variable]))>1000;1;0)
    Et apres, tu met un filtre sur cette variable en mettant la valeur 1
    C'est plus compliqué mais ça fonctionne aussi. Par contre ma formule est simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =If([montant]>1000;1;0)
    avec le montant déjà agrégé dans le @select.

    La procédure que j'ai suivie est la suivante:

    1/ création de la variable
    2/ ajout de la colonne dans le rapport
    3/ filtrage de la colonne sur la valeur 1
    4/ suppression de la colonne

    Est-il possible de filtrer plus simplement la variable sans rajouter la colonne dans le rapport si on ne veut pas qu'elle apparaisse ? Merci.

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    791
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 791
    Points : 688
    Points
    688
    Par défaut
    mm, oui, tu peux filtrer sunr une variable qui n'est pas dans la table
    Dans webi, en haut à gauche, tu as le bouton qui permet d'afficher la barre de formule et juste avant, tout à gauche, tu as le bouton qui permet d'afficher la zone de filtre.
    Tu affiches cette zone, tu clic sur ta table, et puis tu drag and drop ta variable dans la zone de filtre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire un filtre audio passe-haut ?
    Par thenaoh dans le forum Flash
    Réponses: 0
    Dernier message: 09/07/2013, 20h04
  2. [AC-2010] Comment faire un filtre dans une requête
    Par Snakes1 dans le forum Access
    Réponses: 1
    Dernier message: 01/05/2013, 03h31
  3. Comment faire un filtre regex.
    Par JJroset dans le forum Langage
    Réponses: 4
    Dernier message: 05/10/2012, 15h41
  4. [SPS07] Comment faire un filtre entre deux dates ?
    Par Tybo34 dans le forum Développement Sharepoint
    Réponses: 11
    Dernier message: 23/07/2010, 09h42
  5. [C#][Débutant] Comment faire un filtre dans un datagriview
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/05/2006, 18h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo