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

Announcements
Join us in NYC Sept 4th for Qlik's AI Reality Tour! Register Now
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