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 :

Compter dans deux dimensions selon une Date Commune


Sujet :

QlikView

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Compter dans deux dimensions selon une Date Commune
    Bonjour a tous,

    Je suis face à plusieurs problématiques concernant QlikView.

    J'ai actuellement Deux tables en sources. L'une représentant les commandes, l'autre représentant les étapes de ces commandes.
    Le lien est assuré par un numéro unique (numid) et une date d'ajout dans les systèmes (ces deux champs sont présents dans mes deux tables).

    Pour une commande, on a donc plusieurs étapes qui interviennent.

    Pour avoir une vue sur le temps, j'ai enrichi à l'import le champs dateajout avec un day(), month() et year().

    Je rencontre actuellement un problème car lorsque lorsque je sélectionne une date à travers mes enrichissement, les informations (count numid) n'évoluent que par rapport au commande ou alors uniquement au niveau étapes mais impossible d'avoir les deux.

    J'ai beaucoup de mal à modéliser l'idée suivante :
    1 Commande --> XX étapes

    Je souhaiterai avoir à la fois une vision commande ou je compte les volumes de commandes mais ausi une vision volumes des étapes à un niveau inférieur.

    Celà est-il possible dans QlikView ?
    Merci d'avance pour vos éclaircissements, en espérant avoir été clair.

    Cdt

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    C'est tout à fait possible, bien sûr ...
    Il faut juste faire un peu attention.
    1) Les noms de champs dans les tables
    Qlikview utilise les noms de champs pour déterminer les liens entre tables. Si le champ dateajout figure dans les 2 tables, QV essaiera de lier les champs ensemble.
    Selon les informations présentes dans les tables, ça peut être bien ou non !
    2) Les dimensions du graphique
    Un graphique avec numid en dimension affichera les valeurs pour une commande. Un graphique avec numid et dateajout en dimension affichera les valeurs par date.
    3) Les expressions
    count(numid) va donner le nombre de commandes ou d'étapes selon la structure des tables et des graphiques.
    count(distinct numid) va donner le nombre de commandes.

    Bref, selon la façon dont tu aura créé tes tables et selon les dimensions utilisées, ce sera un jeu d'enfant ou un cauchemar ...

    Sinon, donne nous plus d'infos sur la structure de tes tables et on essaiera de répondre à tes questions ...

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup pour ta réponse.
    Tu m'as mis sur une piste grâce à cela.

    Pour les noms, j'ai bien des clés communes (même nom dans les deux tables) : NumId, DateAjout, Num

    Concernant les dimensions, la dateajout étant très précises (niveau heure), j'ai enrichi mon code avec year(dateajout), month(dateajout), day(dateajout).

    Le problème est que celà ne s'applique sur le datejout d'une de mes deux tables.

    Concernant les expressions j'ai saisi la nuance entre Distinct (niveau cmd) et le count simple (pour les étapes).

    Finalement j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Table Cmd
    NumId     DateAjout    Num    InfoA     Info
    100        19/02/2013    50      1500     304  
     
    Table Etapes
    NumID DateAjout         Num     Etapes
    100      19/02/2013       50        A10
    100      19/02/2013       50        A20
    100      19/02/2013       50        A30
    Ce que j'aimerai obtenir c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    NumID DateAjout         Num     Etapes   InfoA     Info
    100      19/02/2013       50        A10     1500     304 
    100      19/02/2013       50        A20     1500     304 
    100      19/02/2013       50        A30     1500     304
    Alors que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    NumID DateAjout         Num     Etapes    InfoA    Info
    100      19/02/2013       50                   1500     304 
    100      19/02/2013       50         A10        
    100      19/02/2013       50         A20        
    100      19/02/2013       50         A30

    Voilà le code que j'utilise, j'ai au début utiliser des simples liens grâce aux noms de champs identiques, puis j'ai testé avec le LEFT Join puis là le CONCATENATE mais je n'arrive au résultat souhaité :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    SET ThousandSep='*';
    SET DecimalSep='.';
    SET MoneyThousandSep='*';
    SET MoneyDecimalSep=',';
    SET MoneyFormat='#*##0,00 €;-#*##0,00 €';
    SET TimeFormat='hh:mm:ss';
    SET DateFormat='DD/MM/YYYY';
    SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
    SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';
    SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';
     
    All:
    LOAD  
         NumId, 
         Num ,
         DateAjout,
         Info,
         Info1     
    FROM
    C:\qv\Cmd.QVD
    (qvd);
     
    CONCATENATE (All)
    LOAD 
         NumID, 
         Num, 
         DateAjout,
         Etapes, 
           Day(DateAjout)as Jour,
              Month(DateAjout)as Mois,
                   Year(DateAjout)as Annee
     
    FROM
    C:\qv\Etapes.QVD
    (qvd);

    Je ne vois pas ce qui cloche...

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Correction, je n'ai pas fait apparaître dans mon post précédent les jours mois années n'apparaissent que sur la seconde table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    NumID DateAjout         Num     Etapes    InfoA    Info   Jour   Mois   Annee
    100      19/02/2013       50                   1500     304 
    100      19/02/2013       50         A10                         19      02       2013   
    100      19/02/2013       50         A20                         19      02       2013          
    100      19/02/2013       50         A30                         19      02       2013

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Essayez avec ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ALL:
    LOAD   NumID, Num, DateAjout,  Etapes, 
               Day(DateAjout)AS Jour,
               Month(DateAjout)AS Mois,
               Year(DateAjout)AS Annee
    FROM   C:\qv\Etapes.QVD (qvd);
     
    Join Load  NumId, Num ,  DateAjout,  Info,  Info1 
    FROM   C:\qv\Cmd.QVD (qvd);

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Même résultat qu'auparavant avec le Join LOAD.

    Lorsque je sélectionne Jour, Mois ou Annee seul les étapes évoluent lors de ma selection et non les commandes.

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    J'ai finalement résolu le problème en dupliquant Day(DateAjout)AS Jour, Month(DateAjout)AS Mois, Year(DateAjout)AS Annee dans les deux load des deux tables.

    Parcontre à présent, lorsque je sélectionne une commande, je ne retrouve pas l'ensemble des étapes colorés en blanc (celà reste grisé).

    De la meme maniere, lorsque je sélectionne une étape, je ne retrouve ma commande, l'ensemble des commandes est grisé.

  8. #8
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Finalement, je me retrouve dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    NumID DateAjout         Num     Etapes    InfoA    Info   Jour   Mois   Annee
    100      19/02/2013       50                   1500     304    19      02       2013  
    100      19/02/2013       50         A10                         19      02       2013   
    100      19/02/2013       50         A20                         19      02       2013          
    100      19/02/2013       50         A30                         19      02       2013

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Ce n'est pas normal.
    Tu aurais dû avoir InfoA et Info dupliquées sur toutes les lignes et la première ligne où Etapes est à blanc n'aurait pas dû apparaître.
    As tu bien retiré le Concatenate ?

  10. #10
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    J'ai pourtant bien retiré les CONCATENATE, j'ai contourné le problème en créant une vue dans ma BDD et en me sourcant depuis celle-ci.
    Merci en tout cas Formulary pour m'avoir mis sur la piste !

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

Discussions similaires

  1. [XL-2007] Copier une base de données selon une date dans une colonne
    Par Tobalich dans le forum Excel
    Réponses: 12
    Dernier message: 12/07/2014, 18h16
  2. Jointure entre fait et dimension selon une date
    Par MACHMOUCH dans le forum SSAS
    Réponses: 0
    Dernier message: 04/08/2011, 11h01
  3. compter nbre de lignes selon une date
    Par jonathanoudelet dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/10/2008, 11h59
  4. Réponses: 6
    Dernier message: 18/04/2006, 13h11
  5. Boucle en Dos pour lister des fichiers selon une date
    Par Corben dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 17/12/2005, 12h17

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