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

QlikView Discussion :

Count if et sum dans la même expression


Sujet :

QlikView

  1. #1
    Membre à l'essai
    Femme Profil pro
    Alternance en Développement décisionnel
    Inscrit en
    Novembre 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Alternance en Développement décisionnel

    Informations forums :
    Inscription : Novembre 2017
    Messages : 57
    Points : 23
    Points
    23
    Par défaut Count if et sum dans la même expression
    Bonjour,

    J'ai une expression :

    = count (distinct if ([QUANTITE_FABRIQUEES]=0 and [TEMPS_PASSE]=0, NUMERO_OF))

    Au lieu de faire quantité fab et tps passé =0, j'aimerai plutôt compter les champs où la sum(quantité_fabriquéées) = 0 et sum (tps passé = 0).

    Quand je fais ça :

    = count (distinct if(sum ([HOF_QUANTITE_FABRIQUEES]=0 and [HOF_TEMPS_PASSE]=0), HOF_NUMERO_OF)) , j'ai une erreur.

    Je ne sais pas comment ajouter sum dans mon expression.

    Merci par avance pour votre aide

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Avec ces données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    data:
    LOAD * INLINE [
    Dim, ID, Qtt, Tps
    A, 1, 1, 1
    A, 1, 2, 2
    A, 1, 3, 3
    A, 2, 4, 0
    A, 2, 5, 0
    A, 3, 0, 6
    A, 3, 0, 7
    A, 4, 8, 8
    A, 5, 0, 0
    A, 6, 0, 0
    A, 6, 0, 0
    A, 6, 0, 0
    A, 6, 0, 0
    ];
    supposons que vous voulez, par "Dim" connaitre le nombre d'ID pour lesquels les sum(Qtt) et sum(Tps) sont = 0, il faut faire un chart avec comme dimension "Dim" et comme expression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sum(
    aggr(
    if(
    sum(Qtt) = 0 and sum(Tps) = 0, 1, 0
    ), Dim, ID)
    )
    Explications :
    - On agrège artificiellement les données par toutes les dimensions de notre chart (ici : "Dim") + la dimension que l'on souhaite compter (ici : "ID").
    - Si sum(Qtt) = 0 et sum(Tps) = 0, on compte 1.
    - On fait la somme de tout ça.


    C'est comme si on faisait un tableau avec comme dimensions "Dim" et "ID" et qu'on compte uniquement les lignes où la valeur attendue ressort.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Alternance en Développement décisionnel
    Inscrit en
    Novembre 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Alternance en Développement décisionnel

    Informations forums :
    Inscription : Novembre 2017
    Messages : 57
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    Désolé mais je n'arrive pas à comprendre le Load. Je remplace bien Dim dans ma requête par les dimensions qui apparaissent dans mon chart et ID par la dimension que je veux compter, donc j'aurais:

    data:
    LOAD * INLINE [
    Dim, ID, mn_champ_qte_fab, mn_champ_tps_passé
    Secteur, 1, 0, 0
    Prs, 1, 0, 0
    ];

  4. #4
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Je ne connais pas vos données, je ne peux donc pas vous dire exactement ce qu'il faut écrire.
    Je vous ai donné un exemple avec des données fictives avec des noms de champs fictifs.

  5. #5
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    La solution proposée ne fonctionne pas ?

  6. #6
    Membre à l'essai
    Femme Profil pro
    Alternance en Développement décisionnel
    Inscrit en
    Novembre 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Alternance en Développement décisionnel

    Informations forums :
    Inscription : Novembre 2017
    Messages : 57
    Points : 23
    Points
    23
    Par défaut
    Non, je pense que le problème se trouve au niveau de mon load. On est obligé de faire un load?

  7. #7
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par ordidi Voir le message
    Non, je pense que le problème se trouve au niveau de mon load. On est obligé de faire un load?
    Le LOAD sert à charger des données.
    Si vous ne chargez pas de données, je ne vois pas comment vous pouvez faire des indicateurs...


    Le LOAD que j'ai mis est un exemple de données pour illustrer l'expression.
    Vous n'avez pas à faire ce LOAD mais à adapter l'expression en fonction de vos données (qui sont censées être déjà chargées dans votre application).

  8. #8
    Membre à l'essai
    Femme Profil pro
    Alternance en Développement décisionnel
    Inscrit en
    Novembre 2017
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Alternance en Développement décisionnel

    Informations forums :
    Inscription : Novembre 2017
    Messages : 57
    Points : 23
    Points
    23
    Par défaut
    Ca fonctionne en utilisant juste l'expression car j'avais déjà fait un Load. Merci

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

Discussions similaires

  1. [MySQL-5.1] COUNT sur deux champs dans la même ligne
    Par Alexcontact dans le forum Requêtes
    Réponses: 3
    Dernier message: 06/12/2016, 12h29
  2. Réponses: 9
    Dernier message: 29/11/2012, 11h26
  3. Réponses: 7
    Dernier message: 08/04/2010, 15h56
  4. Réponses: 9
    Dernier message: 19/04/2009, 15h45
  5. [CR 7] Erreur Tous Les Champs Ne Sont Pas Dans La Même Expression D'Index ?
    Par clementratel dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 23/01/2009, 12h39

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