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 :

Modélisation - Tables de Liens


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 Modélisation - Tables de Liens
    Bonjour,

    Je me permet de vous contacter suite à une problématique à laquelle je suis confronté : Les boucles dans mon modèles de données !


    Les données que je manipule sont les suivantes :


    [TABLE CLIENT] ---> Reprend les droits d'accès pour différents clients
    Societe_Ref_Client
    Nom_Ref_Client
    Prenom_Ref_Client
    Droit_Access


    [TABLE UTILISATION] ---> Log d'utilisation des Clients
    Societe_Ref_Usage
    Nom_Ref_Usage
    Prenom_Ref_Usage
    Log

    Les Societés étant exprimés différemment dans les deux tables, j'ai une table de Mapping (réalisé sous Excel) qui me permet de faire le lien entre ces deux tables :
    [MAP]
    Societe
    Societe_Ref_Usage
    Societe_Ref_Client


    Celà me permet dans mes rapports QV de manier uniquement l'attribut le champs "Societe".

    J'ai donc un schéma de type :
    [TABLE CLIENT] ---> [MAP] <---- [TABLE UTILISATION]

    Dans mon script, je souhaitais également linker Nom_Ref_Client & Nom_Ref_Usage en utilisant un 'As Nom' sur ces deux champs.

    Celà me crée une boucle, ce que n'apprécie guère QlikView, auriez vous une alternative dans la modélisation à mettre en place ?

    Merci d'avance pour votre aide sur le sujet !

  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
    Bonjour,
    Si la table client ne sert qu'à définir un champ droits, je ne chargerais qu'une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    UTILISATION: 
    Load Societe_Ref_Usage, Nom_Ref_Usage, Prenom_Ref_Usage, Log;
    SQL Select ... from ...;
     
    Join load 
    Societe_Ref_Client as Societe_Ref_Usage,
    Nom_Ref_Client as  Nom_Ref_Usage,
    Prenom_Ref_Client as Prenom_Ref_Usage,
    Droit_Acces
    SQL Select ... from ...;
    De cette manière, vous n'avez plus qu'une seule table ...

  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
    Bonjour Formulary et merci pour ton retour.

    J'ai simplifié le modèle pour le post, il y a bien plus de champs que cela.

    Dans la solution que tu indiques je ne peux pas utiliser "Societe_Ref_Client AS Societe_Ref_Usage" car l'expression de société n'est pas la même dans les deux tables sources (l'une étant une table SQL / l'autre un fichier Excel).

    Je suis donc obligé d'utiliser mon mapping sous Excel sous la forme suivante (à titre d'exemple):
    Societe ------------ Societe_Ref_Client ----------- Societe_Ref_Usage
    SOCIETE A ---------- SOC A
    SOCIETE A ----------- ----------- A

  4. #4
    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
    Tu peux aussi :
    Creer un champ ID en concatenant les valeurs de Societe, Nom et Prenom avec le même nom dans les deux tables
    Ne mettre que ce champ de commun aux deux tables. Soit on ne load pas les champs inutiles dans l'une des deux tables, soit on le nomme différemment avec un AS.
    De cette manière, on pourrait avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Clients:
    Load (Societe_Ref_Client & Nom_Ref_Client & Prenom_Ref_Client) as IDClient,
    Societe_Ref_Client,
    Nom_Ref_Client,
    Prenom_Ref_Client,
    Droit_Access,
    etc...
    Utilisation:
    LOAD (Societe_Ref_Usage & Nom_Ref_Usage & Prenom_Ref_Usage) as IDClient,
    Log,
    etc...
    La, on aura une simple jonction entre les deux tables.
    Vérifier qu'aucun champ ne porte le même nom dans les deux tables, hormis IDClient ...

    Nb: Pour moi, tu peux utiliser le mot-clé AS dans la partie LOAD aussi bien sur une requête SQL que sur un fichier Excel ...

  5. #5
    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 à nouveau Formulary, je ne m'exprime pas correctement.

    Le principal obstacle à une telle solution est que "Societe_Ref_Client" n'est pas égal à "Societe_Ref_Usage" donc mon IDClient ne pourra matcher. C'est pour celà que j'ai un mapping comme décrit plus haut !

    Effectivement la source de la donnée n'est pas un soucis pour l'utilisation du 'AS'

    Du coup j'ai un mapping avec la société que je réalise à la main..mais que j'aimerai coupler avec le user c'est là où le bât blesse..

  6. #6
    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
    Regardez dans l'aide de QV les instructions mapping et map ... using.
    Vous devriez pouvoir retomber sur vos pattes ...

  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
    Strike !!! Merci Formulary pour cette suggestion, si je rencontre des diffcultés je reviendrais sur le board ! Thx

Discussions similaires

  1. Table de liens
    Par longshot dans le forum Requêtes
    Réponses: 7
    Dernier message: 29/05/2009, 19h19
  2. [Tableaux] les données de la table en lien
    Par afrodje dans le forum Langage
    Réponses: 5
    Dernier message: 02/05/2007, 15h13
  3. [MySQL] Question simple: afficher tous les entrées d'une table en liens
    Par anarchoi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/04/2007, 12h04
  4. Réponses: 1
    Dernier message: 29/04/2007, 19h53
  5. table de lien (conception cube)
    Par marie253 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/03/2007, 09h48

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