Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
chadliagabsi
Creator II
Creator II

Calcul mouvement interne

Bonjour,

je veux calculer le nombre des agents entrants sortants d'une direction pour avoir les mouvements internes d'une entreprise. Donc j'ai utilisé la fonction previous comme ceci:

tmp_1:

LOAD MATRICULE,

     DATE_DEB_TEMP,

     DATE_FIN_TEMP,

     MOTIF,DIRECTION,MOIS,ANNEE

Resident D;

left join(D_VUE_DAA)

ENTREES:

LOAD MATRICULE,

DATE_DEB ,DIRECTION,

If(MATRICULE=Peek(MATRICULE)and DIRECTION<>Peek(DIRECTION),1,0) as ENTREE

Resident tmp_1

Order By MATRICULE,MOIS,ANNEE,DATE_DEB;

Join

LOAD MATRICULE,

DATE_FIN_TEMP ,

     MOTIF,DIRECTION,MOIS,ANNEE,

If(MATRICULE=Peek(MATRICULE)and DIRECTION<>Peek(DIRECTION),1) as SORTIE

Resident tmp_1

Order By MATRICULE,MOIS,ANNEE,DATE_FIN;

Drop Table tmp_1;

Ce script me retourne le résultat suivant  c'est un pour tout les mois du changement. cette personne a changé la direction au milieu du mois de novembre donc je souhaite avoir previous direction X 1 sortie , direction Y actuel 1 entrée.

Merci

Sans titre.png

2 Replies
sfatoux72
Partner - Specialist
Partner - Specialist

Salut,

Essaye en remplaçant Peek par Previous dans ton script et précise ta 2ème jointure:

tmp_1:

LOAD MATRICULE,

    DATE_DEB_TEMP,

    DATE_FIN_TEMP,

    MOTIF,DIRECTION,MOIS,ANNEE

Resident D;

left join(D_VUE_DAA)

ENTREES:

LOAD MATRICULE,

DATE_DEB ,DIRECTION,

If(MATRICULE=Previous(MATRICULE)and DIRECTION<>Previous(DIRECTION),1,0) as ENTREE

Resident tmp_1

Order By MATRICULE,MOIS,ANNEE,DATE_DEB;

left join(D_VUE_DAA)    //Join

LOAD MATRICULE,

DATE_FIN_TEMP ,

    MOTIF,DIRECTION,MOIS,ANNEE,

If(MATRICULE=Previous(MATRICULE)and DIRECTION<>Previous(DIRECTION),1) as SORTIE

Resident tmp_1

Order By MATRICULE,MOIS,ANNEE,DATE_FIN;

Drop Table tmp_1;

chadliagabsi
Creator II
Creator II
Author

Bonjour Sébastien,

je pense que ma question n'est pas clair .

En effet, j'ai le tableau suivant comme données  :

t.png

Donc cette personne novembre 2017 elle était dans la direction DR et en décembre elle a fait un changement d'affectation donc pour moi je dois ajouter 1 juste dans le mois de changement par contre mon script et le tien me donne pour 1 pour tout les mois à partir de Décembre. Le tableau souhaité est le suivant.

t.png

Pour moi je dois ajouter dans mon

If(MATRICULE=Previous(MATRICULE)and DIRECTION<>Previous(DIRECTION) and MOIS-1=PREVIOUS (MOIS),1,0) as ENTREE

mais ca ne fonctionne pas