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 :

Set Analysis (Date)


Sujet :

QlikView

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Set Analysis (Date)
    Bonjour,

    J'ai un problème avec un set analysis dans une expression. La syntaxe me semble bonne, le raisonnement aussi, et pourtant, ça ne fonctionne pas ...

    Voici l'expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =count({<ID_DATE={"$(=date(max(ID_DATE)))"}-{">$(=date(now()))"}>} ID_Anomalie)
    ID_DATE est une date (pas une string) de la forme "JJ/MM/YYYY". Dans mon document qlikview, je possède autant d'ID_DATE que de jours entre le 1er janvier 2008 et le 31 décembre 2012.

    Je possède 3 tables :
    - Bug(ID_Anomalie, ...)
    - Calendrier(ID_DATE, ID_SEMAINE, ID_MOIS, ID_ANNEE, ...)
    - BugActif(ID_Anomalie, ID_DATE, Etat)

    BugActif contient les ID_DATE de chaque bug (ID_Anomalie) depuis sa création jusqu'à sa résolution.
    Exemple :
    ID_Anomalie ; ID_DATE ; Etat
    6 ; 11/03/2011 ; Nouveau
    6 ; 12/03/2011 ; Affecté
    6 ; 13/03/2011 ; Affecté
    6 ; 14/03/2011 ; Affecté
    6 ; 15/03/2011 ; Résolu
    7 ; 13/03/2011 ; Nouveau
    7 ; 14/03/2011 ; Affecté
    7 ; 15/03/2011 ; Affecté
    7 ; 16/03/2011 ; Affecté
    7 ; 17/03/2011 ; Affecté
    7 ; 18/03/2011 ; Affecté

    L'expression que j'ai créé me permettrais d'obtenir le nombre d'anomalie par état en respectant ceci :
    - Si un ID_DATE a été selectionné, alors je veux voir le nombre d'anomalies par état à ce jour,
    - Si un ID_SEMAINE a été selectionné, alors je veux voir le nombre d'anomalies par état au dernier jour de cette semaine,
    - Si un ID_MOIS a été selectionné, je veux aussi voir le nombre d'anomalies par état au dernier jour de ce mois,
    - De même si un ID_ANNEE a été selectionné.

    Bien entendu, si un ID_MOIS et un ID_SEMAINE ont été selectionné, je veux obtenir le nombre d'anomalies par état au dernier jour de l'ID_SEMAINE selectionné (cela va de soit) ...

    Aussi, j'aimerais, si aucune selection n'a été faite, obtenir le nombre d'anomalies par état à la date d'aujourd'hui.


    Lorsque je mets ceci (en retirant -{">$(=date(now()))"} ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =count({<ID_DATE={"$(=date(max(ID_DATE)))"}>} ID_Anomalie)
    ça fonctionne dans tout les cas sauf lorsqu'aucune sélection n'a été faite (car Qlikview considère que le max(ID_DATE) = 31/12/2012)

    Je voudrais donc que le max(ID_DATE) = date(now()) lorsqu'aucune selection n'a été faite.


    En esperant avoir été assez précis dans l'expression de mon besoin, je vous remercie du temps que vous voudrez m'accorder.

    Cordialement,
    Pierre.

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 419
    Points
    419
    Par défaut
    Pfiou, pas facile ces Set Analysis. Je suis étonné que la deuxième formule fonctionne. Ne devrait-elle pas sélectionner uniquement LA dernière date de la sélection ? (une seule date en tout cas) Je verrais plutôt :

    =count({$<ID_DATE={"<$(=date(max(ID_DATE)))"}>} ID_Anomalie)

    Je vois en effet ceci dans le manuel (book III p. 357) :

    sum( {$<Year = {">1978<2004"}>} Sales )

    Il y a aussi ceci, p. 358, mais, je souligne, sans opérateur < ni > :

    sum( {$<Year = Year + ({"20*",1997} – {2000}) >} Sales )


    Et pour la première formule :

    =count({$<ID_DATE={"<$(=date(max(ID_DATE)))"}> - $<ID_DATE={">$(=date(now()))"}>} ID_Anomalie)

    Cela devrait marcher sans sélection puisque le futur est exclu par la deuxième partie du Set Analysis.

    À essayer aussi peut-être, num(date()) au lieu de date().

    Petite note au passage, dans un tableau pivot, l'expression s'affiche par défaut en libellé, ce qui permet de voir ce que renvoient les expressions $(=...).

    À essayer...

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Tes solutions me rendent un ensemble de dates, mais il me fallait en effet qu'une seule date (la date maximale de la sélection, ou la date du jour si la date maximale est supérieur à celle du jour).

    Sur le forum communautaire de Qlikview, ils m'ont donné cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if((GetSelectedCount(ID_DATE) OR GetSelectedCount(ID_SEMAINE) OR GetSelectedCount(LIB_MOIS) OR GetSelectedCount(LIB_TRIMESTRE) OR GetSelectedCount(LIB_SEMESTRE) OR GetSelectedCount(ANNEE)),
    if(date(max(ID_DATE)) >= date(today()-1), count({<ID_DATE={"$(=date(today()-1))"}>} ID_Anomalie), count({<ID_DATE={"$(=date(max(ID_DATE)))"}>} ID_Anomalie)),
     count({<ID_DATE={"$(=date(today()-1))"}>} ID_Anomalie))
    Je trouve cela un peu trop "bourrin" à mon goût, mais ce la fonctionne ...
    --> Si une selection de date ou de période a été effectuée, je récupère le nombre d'anomalies au jour d'aujourd'hui,
    Sinon, si la date maximale de la sélection est supérieure à la date du jour, alors je récupère la date du jour, sinon je récupère la date maximale de la sélection.


    Cependant, je n'ai pas mis de '$' avant mes "<ID_DATE ...". Je ne vois pas réellement la différence ... je n'ai pas trop compris cela en lisant la doc =/

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

Discussions similaires

  1. Opérations sur dates SET analysis
    Par arnest dans le forum QlikView
    Réponses: 1
    Dernier message: 23/04/2013, 12h11
  2. Réponses: 7
    Dernier message: 24/10/2011, 21h49
  3. COUNT et SET ANALYSIS
    Par piero15 dans le forum QlikView
    Réponses: 0
    Dernier message: 14/03/2011, 10h40
  4. Alphanumerique dans un set analysis !
    Par liegeus dans le forum QlikView
    Réponses: 0
    Dernier message: 23/02/2011, 17h55
  5. Set Analysis expression
    Par arnest dans le forum QlikView
    Réponses: 1
    Dernier message: 06/09/2010, 11h30

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