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 :

Construction modèle


Sujet :

QlikView

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Points : 2
    Points
    2
    Par défaut Construction modèle
    Bonjour, nous passons de Excel à QlikView pour avoir des rendu plus dynamiques.
    Le soucis c'est que mes données proviennent de plusieurs sources Excel, je m'explique :
    Dans la quasi totalité de mes fichiers Excel, j'ai le champ "agences" (Lyon métropole, Loire, drome-Ardèche ...). Or, quelque fois, les Agences ne se nomment pas de la même façon entre les fichiers Excel ( "LM" pour "Lyon Métropole").
    Et j'aimerais avoir un modèle QlikView avec une seule liste de sélection "Agence", que lorsque je sélectionne mon agence, toutes les données se mettent à jour.
    Merci 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,

    Je vous conseille de créer une table de mapping qui gère la correspondance entre toutes les appellations d'une agence et l'agence.

    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
     
    map_agence:
    MAPPING LOAD * INLINE [
    in, out
    LM, Lyon Métropole
    Lyon Metropole, Lyon Métropole
    Lyon M., Lyon Métropole
    alias, agence
    ];
     
    ...
     
    table:
    LOAD
    applymap('map_agence', nom_agence) AS agence_normalisée
    FROM ...

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par PhunkyBob Voir le message
    Bonjour,

    Je vous conseille de créer une table de mapping qui gère la correspondance entre toutes les appellations d'une agence et l'agence.

    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
     
    map_agence:
    MAPPING LOAD * INLINE [
    in, out
    LM, Lyon Métropole
    Lyon Metropole, Lyon Métropole
    Lyon M., Lyon Métropole
    alias, agence
    ];
     
    ...
     
    table:
    LOAD
    applymap('map_agence', nom_agence) AS agence_normalisée
    FROM ...


    Merci pour votre réponse, ca à l'air de fonctionner. Or, je ne parviens pas à importer deux tables :


    Nom : mapping.PNG
Affichages : 257
Taille : 12,3 Ko

    Peut on importer 2 tables dans le FROM de la table1?

  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
    Ce que je comprends, c'est que vous voulez mettre le contenu de 2 fichiers Excel dans une même table QV ?

    Si oui, il faut utiliser le mot clé "CONCATENATE (table)" qui dit "ajoute les données dans la table existante".


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    table:
    LOAD 
    champ
    FROM fichier1;
     
    CONCATENATE (table)
    LOAD
    autre_champ AS champ
    FROM fichier2;

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par PhunkyBob Voir le message
    Ce que je comprends, c'est que vous voulez mettre le contenu de 2 fichiers Excel dans une même table QV ?

    Si oui, il faut utiliser le mot clé "CONCATENATE (table)" qui dit "ajoute les données dans la table existante".


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    table:
    LOAD 
    champ
    FROM fichier1;
     
    CONCATENATE (table)
    LOAD
    autre_champ AS champ
    FROM fichier2;

    Non, se que je veux faire doit être assez simple. Imaginons que j'ai 2 bases de données sur 2 fichiers excel. Les 2 bases comporte le champs "Agence". Or, les données dans cette colonne ne sont pas écris de la même manière dans les deux fichiers : "LM" dans l'un et "Lyon métropole" dans l'autre.
    J'aimerai avoir au final une base de donnée propre avec une liste de sélection "agence" commune à tous les fichiers Excel. Et lorsque je choisi mon agence dans cette liste, tous les reporting derrière se modifient.

  6. #6
    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
    Alors il faut faire exactement ce que j'ai indiqué dans mon premier message.


    Dans votre exemple, vous n'avez chargé qu'1 seul champ, donc QV a considéré que c'était la même table de celle d'avant, il les a donc concaténées.

    Si vous rajoutez les autres champs des tables (et qu'ils sont différents) vous aurez 2 tables distinctes, liées par le champ "Agence" qui sera normalisé.

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par PhunkyBob Voir le message
    Alors il faut faire exactement ce que j'ai indiqué dans mon premier message.


    Dans votre exemple, vous n'avez chargé qu'1 seul champ, donc QV a considéré que c'était la même table de celle d'avant, il les a donc concaténées.

    Si vous rajoutez les autres champs des tables (et qu'ils sont différents) vous aurez 2 tables distinctes, liées par le champ "Agence" qui sera normalisé.

    Je crois avoir compris, vous pouvez envoyer un exemple de code montrant comment peut on faire pour charger plusieurs champs ?

  8. #8
    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
    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
     
    table_1:
    LOAD 
    champ_commun,
    champ_1,
    champ_2
    FROM 
    fichier (...);
     
    table_2:
    LOAD 
    champ_commun,
    champ_3,
    champ_4
    FROM 
    un_autre_fichier (...);

    Cela créera 2 tables liées par le champ commun.

  9. #9
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par PhunkyBob Voir le message
    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
     
    table_1:
    LOAD 
    champ_commun,
    champ_1,
    champ_2
    FROM 
    fichier (...);
     
    table_2:
    LOAD 
    champ_commun,
    champ_3,
    champ_4
    FROM 
    un_autre_fichier (...);

    Cela créera 2 tables liées par le champ commun.

    Regardez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    map_agence:
    MAPPING LOAD * 
    INLINE [
    in, out
    Interventions LM, Lyon_Métropole
    ];
     
    table:
    LOAD
    applymap('map_agence', Agence) AS OPEX_Agence
    FROM
    [tdbOPEX_2018.04_Interventions.xlsx]
    (ooxml, embedded labels, table is Base);
    J'ai pour le moment essayé de seulement changer les données d'une seule table : "interventions LM" qui devient "Lyon_métropole".
    Ma jointure avec la table a l'air de fonctionné :

    Nom : Capture3.PNG
Affichages : 241
Taille : 14,7 Ko

    Or, lorsque que je sélectionne "Lyon_métropole" dans ma liste de sélection "OPEX_Agence" il n'y a pas de donnée..

  10. #10
    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
    Avez-vous aussi appliqué ce mapping qu chargement de votre table "Base" ?


    Etes-vous certain que dans votre table "Base" vous avez des données liées à "Lyon_métropole" ?

  11. #11
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par PhunkyBob Voir le message
    Avez-vous aussi appliqué ce mapping qu chargement de votre table "Base" ?


    Etes-vous certain que dans votre table "Base" vous avez des données liées à "Lyon_métropole" ?

    Non je ne l'ai pas appliqué pour ma table base, comment faut-il faire ?
    Et dans ma table base j'ai un champ appelé "Agence" avec des données comportant "Interventions LM" que je veux transformer en "Lyon_métropole"

  12. #12
    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 vous invite à lire ce post.

  13. #13
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    map_agence:
    MAPPING LOAD * 
    INLINE [
    in, out
    Interventions LM, Lyon_Métropole
    ];
     
    table:
    LOAD
    applymap('map_agence', Agence) AS OPEX_Agence
    FROM
    [tdbOPEX_2018.04_Interventions.xlsx]
    (ooxml, embedded labels, table is Base);
    Je l'ai fais, dans le FROM on peut voir qu'il va bien chercher la table base

  14. #14
    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 pense qu'on ne doit pas se comprendre...

    Là vous me montrez le chargement de la table "table" qui ne contient qu'1 champ.
    Moi je vous dis qu'il faut aussi faire le mapping dans le chargement de la table "Base" qui contient (d'après votre capture d'écran) bien plus de champs.

  15. #15
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par PhunkyBob Voir le message
    Je pense qu'on ne doit pas se comprendre...

    Là vous me montrez le chargement de la table "table" qui ne contient qu'1 champ.
    Moi je vous dis qu'il faut aussi faire le mapping dans le chargement de la table "Base" qui contient (d'après votre capture d'écran) bien plus de champs.

    Merci j'ai réussi! J'ai juste une autre petite question, est ce qu'il existe une fonction de script sur Qlikview qui permet d'auto-incrémenter les lignes?
    Je veux créer une clé primaire pour chaque tables. Et je veux que Qlikview me créer une nouvelle colonne "ID_..." où la ligne 1 aura comme valeur 1, la ligne 2 aura 2, ect..

  16. #16
    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,

    Vous pouvez utiliser les fonction "RecNo()" ou "IterNo()" (en fonction de la façon dont vous effectuez votre chargement).

  17. #17
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    super ca fonctionne !
    Encore un autre soucis... J'ai donc maintenant avec mon mapping toutes les agences qui se nomment de la même facon. Or, je souhaite avoir une seule liste de sélection qui lorsque que je sélectionne mon agence, tous les reporting se modifient. J'ai donc appelé tous mes champs "Agence". Le problème est maintenant que j'ai des clés synthétiques. Et lorsque que je rajoute une autre liste de sélection, les données seront fausses..

  18. #18
    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
    Si vous avez ces clés, c'est que vous avez plus de 1 champ commun entre les 2 tables.

    Si ça doit être le cas, une des solutions est de mettre vos 2 tables de faits dans 1 seule table de faits.

  19. #19
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mai 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2018
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Oui, enfaite j'ai le champs "agence" (Lyon, Loire...) et le champs "ville" qui vient en sous catégories de l'agence (décine, rilleux ect..)
    Et du coup j'ai renommé ces champs de la même façon dans toutes mes tables et j'obtiens des clés synthétiques.
    Qu'est ce que vous entendez par table de faits?

  20. #20
    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
    Une table de faits, c'est une table dans laquelle il y a les données qui servent à faire les mesures (ce qui est dans les expressions des charts QV).

    Vous pouvez créer vous même une table qui contient l'agence et la ville, la clé étant la combinaison "agence|vide" qui sera dans vos 2 tables+ cette table de référence.

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

Discussions similaires

  1. Construction et exploitation de modèles 3D de plantes
    Par nymformaticien dans le forum Imagerie
    Réponses: 3
    Dernier message: 13/01/2014, 11h15
  2. Construction du modèle de forme
    Par imagerie médicale dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 21/06/2011, 10h18
  3. Réponses: 0
    Dernier message: 02/04/2010, 14h45
  4. construction d'un modèle 3D
    Par atomicJo dans le forum OpenGL
    Réponses: 2
    Dernier message: 14/05/2009, 09h49
  5. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22

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