Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
LnAz
Contributor III
Contributor III

Comment effectuer des jointures complexes dans Qlik Sense

Bonjour,

j'aurais une question concernant les jointures dans le script de Qlik Sense.

jai les 4 tables suivantes avec leurs colonnes :
Effectif       : Siren_CODE, Effectif_NB,  EntAvecHeuresSupp_FLAG
PPActivite  : Cal_DATE, PeriodeActivite_ID, PP_ID, PM_ID,Siren_CODE,Age_NB,RemuAnnuelleBrute_NB,HeuresSupAnnuelles_NB, Max_DATE
Tranche_Eff : Effectif_ID,  Effectif_BORNEINF, Effectif_BORNESUP,Effectif_RGRP_CLE, Effectif_NOM
Tranche_Age :  Age_ID, Age_BorneInf,Age_BorneSup, Age_Rgrp_CLE, Age_NOM
 
Je souhaite récupérer les tranches d'âge et les tranches d'effectif pour les données de la table PPActivite. Voici la requête SQL que j'utilise pour cela :
 
SELECT DISTINCT
ppa.Cal_DATE, 
ppa.PP_ID,
ppa.PM_ID,
ppa.Siren_CODE,
e.EntrepriseAvecHeuresSupp_FLAG,
te.Effectif_NOM,
ta.Age_NOM, 
 
FROM PPActivite ppa
LEFT OUTER JOIN Effectif e ON ppa.Siren_CODE = e.Siren_CODE
LEFT OUTER JOIN Tranche_Eff te ON e.Effectif_NB BETWEEN te.Effectif_BORNEINF AND te.Effectif_BORNESUP AND te.Effectif_RGRP_CLE = 'OBS1'
LEFT OUTER JOIN Tranche_Age ta ON ppa.Age_NB BETWEEN ta.Age_BorneInf AND ta.Age_BorneSup AND ta.Age_Rgrp_CLE = 'RKT' 
 

Comment puis-je faire les deux dernières jointures sur les tables Tranche_Eff et Tranche_Age dans un script Qlik Sense, sachant que les données de ces 4 tables sont stockées dans des fichiers QVD ?

Merci d'avance pour votre aide.

Labels (2)
2 Solutions

Accepted Solutions
BrandonFontes
Partner - Contributor III
Partner - Contributor III

Try this:

PPActivite:
LOAD DISTINCT
    Cal_DATE, 
    PP_ID,
    PM_ID,
    Siren_CODE,
    Age_NB,
    Effectif_NB
FROM [lib://DataFiles/PPActivite.qvd] (qvd);

LEFT JOIN (PPActivite)
LOAD
    Siren_CODE,
    EntrepriseAvecHeuresSupp_FLAG,
    Effectif_NB
FROM [lib://DataFiles/Effectif.qvd] (qvd);

TrancheEff:
LOAD
    Effectif_BORNEINF,
    Effectif_BORNESUP,
    Effectif_NOM
FROM [lib://DataFiles/Tranche_Eff.qvd] (qvd)
WHERE Effectif_RGRP_CLE = 'OBS1';

IntervalMatch_Eff:
INTERVALMATCH(Effectif_NB)
LOAD
    Effectif_BORNEINF,
    Effectif_BORNESUP
RESIDENT TrancheEff;

LEFT JOIN (IntervalMatch_Eff)
LOAD DISTINCT
    Effectif_BORNEINF,
    Effectif_BORNESUP,
    Effectif_NOM
RESIDENT TrancheEff;

TrancheAge:
LOAD
    Age_BorneInf,
    Age_BorneSup,
    Age_NOM
FROM [lib://DataFiles/Tranche_Age.qvd] (qvd)
WHERE Age_Rgrp_CLE = 'RKT';

IntervalMatch_Age:
INTERVALMATCH(Age_NB)
LOAD
    Age_BorneInf,
    Age_BorneSup
RESIDENT TrancheAge;

LEFT JOIN (IntervalMatch_Age)
LOAD DISTINCT
    Age_BorneInf,
    Age_BorneSup,
    Age_NOM
RESIDENT TrancheAge;
Project Leader and Qlik Specialist at Work Avanti Solutions | www.avantisolucoes.com.br

View solution in original post

LnAz
Contributor III
Contributor III
Author

Merci @BrandonFontes  ça fonctionne très bien 

View solution in original post

2 Replies
BrandonFontes
Partner - Contributor III
Partner - Contributor III

Try this:

PPActivite:
LOAD DISTINCT
    Cal_DATE, 
    PP_ID,
    PM_ID,
    Siren_CODE,
    Age_NB,
    Effectif_NB
FROM [lib://DataFiles/PPActivite.qvd] (qvd);

LEFT JOIN (PPActivite)
LOAD
    Siren_CODE,
    EntrepriseAvecHeuresSupp_FLAG,
    Effectif_NB
FROM [lib://DataFiles/Effectif.qvd] (qvd);

TrancheEff:
LOAD
    Effectif_BORNEINF,
    Effectif_BORNESUP,
    Effectif_NOM
FROM [lib://DataFiles/Tranche_Eff.qvd] (qvd)
WHERE Effectif_RGRP_CLE = 'OBS1';

IntervalMatch_Eff:
INTERVALMATCH(Effectif_NB)
LOAD
    Effectif_BORNEINF,
    Effectif_BORNESUP
RESIDENT TrancheEff;

LEFT JOIN (IntervalMatch_Eff)
LOAD DISTINCT
    Effectif_BORNEINF,
    Effectif_BORNESUP,
    Effectif_NOM
RESIDENT TrancheEff;

TrancheAge:
LOAD
    Age_BorneInf,
    Age_BorneSup,
    Age_NOM
FROM [lib://DataFiles/Tranche_Age.qvd] (qvd)
WHERE Age_Rgrp_CLE = 'RKT';

IntervalMatch_Age:
INTERVALMATCH(Age_NB)
LOAD
    Age_BorneInf,
    Age_BorneSup
RESIDENT TrancheAge;

LEFT JOIN (IntervalMatch_Age)
LOAD DISTINCT
    Age_BorneInf,
    Age_BorneSup,
    Age_NOM
RESIDENT TrancheAge;
Project Leader and Qlik Specialist at Work Avanti Solutions | www.avantisolucoes.com.br
LnAz
Contributor III
Contributor III
Author

Merci @BrandonFontes  ça fonctionne très bien