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 :

Jointure sur QlikSENSE


Sujet :

QlikView

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Août 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Août 2017
    Messages : 67
    Points : 29
    Points
    29
    Par défaut Jointure sur QlikSENSE
    Bonjour,

    Si c'est possible de m'aider svp

    Je dispose de deux tables de données.
    Table A
    Donnée 1 avec des codes numeriques (ex 170)
    Donnée 2 avec des codes alphanumériques ou ND (X1…X 111 ou ND)
    Donnée 3
    Donnée 4
    Donnée 5

    Table B
    Donnée A -> est la même que donnée 1
    Donnée B -> est la même que donnée 2
    Donnée C
    Donnée D
    .
    .
    .
    DonnéeZ

    Problématique :
    Si Donnée A Table B n’a pas de donnée B table B rattachée ou a une donnée B rattachée mais que donnée 2 rattachée à la donnée 1 est ND alors Donnée A Table B affichera les données 3,4 ,5 Table 1.
    Si Donnée A Table B comporte des données B table B rattachée alors Donnée A ET donnée B Table B afficheront les données 3,4 ,5 Table 1.


    Ex : l’opération 12235 de la table B a une donnée A 171 et pas de donnée B -> Donnée A 171 affichera donnée 3 / 4/5
    l’opération 12236 de la table B a une donnée A 172 et une donnée B or la donnée 2 rattachée à la donnée 1 est ND -> Donnée A 172 affichera donnée 3 / 4/5
    l’opération 12237 de la table B a une donnée A 173 et une donnée B qui correspond à la donnée 2 hors ND -> Donnée A & B afficheront donnée 3 / 4/5

  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 invite à créer un exemple simple avec des "LOAD * INLINE" qui permettrait de mettre en évidence votre problème et qui nous permettrait de le comprendre plus facilement.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Août 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Août 2017
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Voici mon qv

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    REF:
    LOAD
        CD_TYP_OPE,
        "Service Associé",
        CD_CORRESP,
        "CATEGORIE DE PRODUIT",
        "TYPE DE CLIENT",
        "OBJET DE LA RECLAMATION"
    FROM [lib://chemin/MAJ_tables correspondance ACP MAJ du 26-09-2019 par PH.csv]
    (txt, codepage is 28591, embedded labels, delimiter is ';', msq);
     
     
     
    TMP1: 
    LOAD
        CFG,
        LB_ELT_STR,
        "Code type subdivision",
        "Date création opération",
        Year("Date dernière màj opération") as Année,
     Week("Date dernière màj opération") as Semaine,
    Month ("Date dernière màj opération") as Mois,
        "Date réception échange",
        "Identifiant opération",
        "Libellé famille opération",
        "Code type opération",
        LB_TYP_OPE,
        Cause2,
        "Identifiant gamme produit",
        Service_Associé,
        "libelle vp",
        "Date dernière màj opération",
        "Code statut physique",
        "Matricule agent créé",
        "Matricule agent traite opération",
        "Numéro de compte",
        "Code Canal physique de l'échange",
        "Montant indemnisation versé",
        "Code résultat",
        "Code type indemnisation client",
        CD_ENTITE_CRSF,
        "Cause Commune",
        "Cause Métier",
        "Identifiant entité plus 1 agent traite",
        "Date d'envoi de la demande",
        "Code type participant initiateur",
        "Famille Clients",
        NetWorkDays([Date réception échange],[Date dernière màj opération])-1 as Perf
    FROM [lib://chemin/2019ACPR.csv]
    (txt, codepage is 28591, embedded labels, delimiter is ';', msq);
     
     
     
     
    TAB_FINAL: 
    load *, 1 as SA,"Code type opération" as CD_TYP_OPE resident TMP1 where Service_Associé = 'ND'  ; 
    Concatenate
    load *, 1 as CTO,Service_Associé as "Service Associé" resident TMP1 where Service_Associé <> 'ND'; 
     
    drop table TMP1;

  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 pensais plutôt à du code spécifique qui met en avant votre problème.

    Par exemple :
    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
     
    table_A:
    LOAD * INLINE [
    Champ1, Champ2
    170, AZE123
    171, ND
    172, RTY456
    ];
     
    table_B:
    LOAD * INLINE [
    Champ1, Champ2
    170, XYZ789
    171, ND
    173, RTY456
    174, ABC963
    ];

    L'idée étant de répondre à votre question spécifique, pas de corriger votre application.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Août 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Août 2017
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Merci mais je comprends pas ni ne maitrise le load inline..je suis obligé de passer par ça pour la jointure?

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Août 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Août 2017
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    en fait je comprends pas pourquoi load inline car j'ai des centaines de valeurs du champ 2 qui peuvent etre rattaché au champ..ce serait trop lourd de toutes les écrire...
    Les valeurs du champ 2 sont dans la table 1..de meme que celle du champ 1, c'est mon référentiel...

  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
    Je ne vous demande pas toutes vos données, je vous demande un exemple qui met en évidence votre problème.
    Un exemple de 5 lignes de données avec les 2 ou 3 colonnes qui posent problème serait parfait.

    Si vous ne savez pas faire de "LOAD * INLINE", vous pouvez faire des petits tableaux avec les données, cela revient au même.

    Cela présente plusieurs avantages :
    - Souvent, quand on schématise son problème pour l'expliquer, on trouve tout seul la solution.
    - Les gens qui veulent vous aider ne sont pas pollués par les données qui ne servent à rien.
    - Les gens qui veulent vous aider peuvent copier / coller le script en local et vous fournir plus facilement une réponse adaptée.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Août 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Août 2017
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Mon explication :



    Table 1 : mon référentiel pour lequel des Services associés sont rattachés parfois à des CD TYP OPE, sinon le service associé est ND
    CD_TYP_OPE,
    "Service Associé",
    CD_CORRESP,
    "CATEGORIE DE PRODUIT",
    "TYPE DE CLIENT",
    "OBJET DE LA RECLAMATION"


    Table 2 : ma base de données de 400 000 lignes pour lesquels j'ai un CD TYP OPE pour chaque ligne et des services associés pas sur toutes les lignes.

    Mon probleme :
    SI l'opération de la table 2 a un type opération ET service associé qui est référencé dans la table 1 alors cela fera la correspondance avec les autres champs de la table 1
    SI l'opération de la table 2 a un type opération ET n'a pas de service associé ou a un service associé qui correspond au ND rattaché au CD TYPE OPE alors le CD TYPE OPE detérminera les autres champs de la table 1.

    Est ce clair?

  9. #9
    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
    Désolé, je n'y vois guère plus clair.

    J'essaye de faire un jeu de 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
     
    Table1:
    LOAD * INLINE [
    Service Associé, CD_TYP_OPE, "CATEGORIE DE PRODUIT"
    Service 1, Type 1, Boisson
    Service 2, Type 2, Chaussure
    Service attaché à rien, ND, Autre 
    Service 2bis, Type 2, Chaussure
    Service 3, Type 3, Musique
    ];
     
    Table2:
    LOAD * INLINE [
    Opération, Table2.Service_Associé, Table2.CD_TYP_OPE
    Opé 1, Service 1, Type 1
    Opé 2, , Type 4
    ];
    mais je ne devine pas quelles peuvent être les valeurs et je ne comprends pas ce qui est attendu.

    Si vous ne pouvez pas fournir un exemple concret de données et de ce qui est attendu dans le cas 1 et dans le cas 2, je ne pourrai pas vous aider.
    Pour répondre à ça par exemple :
    Ex : l’opération 12235 de la table B a une donnée A 171 et pas de donnée B -> Donnée A 171 affichera donnée 3 / 4/5
    l’opération 12236 de la table B a une donnée A 172 et une donnée B or la donnée 2 rattachée à la donnée 1 est ND -> Donnée A 172 affichera donnée 3 / 4/5
    l’opération 12237 de la table B a une donnée A 173 et une donnée B qui correspond à la donnée 2 hors ND -> Donnée A & B afficheront donnée 3 / 4/5
    quelles sont les données d'entrée ?


    J'espère que d'autres membres comprendront mieux votre besoin...

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Août 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Août 2017
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Je vous remercie beaucoup, j'avoue que je ne sais l'exprimer correctement, je regarde ce soir pour essayer de vous faire un exemple qui vous aider à m'aider.
    Bonne soirée

Discussions similaires

  1. [FB1.5]Vue avec jointure sur tables ?
    Par Sitting Bull dans le forum SQL
    Réponses: 2
    Dernier message: 07/12/2004, 17h07
  2. jointure sur table et procedure stocké
    Par pram dans le forum SQL
    Réponses: 3
    Dernier message: 18/11/2004, 21h56
  3. jointure sur une même table
    Par guillaumeVb6 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/09/2004, 15h08
  4. jointure sur TROIS tables
    Par caribou_belle dans le forum Langage SQL
    Réponses: 8
    Dernier message: 01/03/2004, 11h20
  5. Jointure sur 2 tables de bases différentes
    Par Celina dans le forum Langage SQL
    Réponses: 10
    Dernier message: 10/11/2003, 11h56

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