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

Integration min max date in calendar

Hello,

I need to calculate the number of agents input and output per year and month. I added min max in my calendar, it show me the min and max per agent  but they are not related to the calendar. if i execute count(min_date) i have the total number of agents.

Thanks for your help

TRANSFERT:

LOAD Distinct MATRICULE_AGENT,

DEBUT_OCCUPATION as DATE_DEB_FIN,

'DEB_OCCUPATION'as TYPEDATE

Resident D_VUE_DAA;

LOAD Distinct MATRICULE_AGENT,

FIN_OCCUPATION as DATE_DEB_FIN,

'FIN_OCCUPATION'as TYPEDATE

Resident D_VUE_DAA;

Load

Distinct MATRICULE_AGENT,

DEBUT_OCCUPATION

    ,right(DATE(floor(DAA_SK_DATDEB + IterNo() -1),'DD/MM/YYYY'),10)as DATE_DEB_FIN

    , 'JOURS TRAVAILLES'as TYPEDATE

Resident D_VUE_DAA

While IterNo() <= (FIN_OCCUPATION ) - DEBUT_OCCUPATION + 1

min_max:

     Load Distinct(MATRICULE_AGENT) ,

      'MIN_MAX'as TYPEDATE,

     Min(DATE_DEB_FIN) AS min_date,

Max(DATE_DEB_FIN) AS max_date

     RESIDENT TRANSFERT

    group by MATRICULE_AGENT;

NoConcatenate

CALENDRIER:


LOAD Date(DATE_DEB_FIN) AS DATE_DEB_FIN,

     Num(Makedate(Year(Now()),Month(Now()),Day(Now()))) as datetest,

Year(DATE_DEB_FIN) AS ANNEE,

'SEMESTRE ' & Ceil(Month(DATE_DEB_FIN) / 6) AS SEMESTRE,

'TRIMESTRE' & Ceil(Month(DATE_DEB_FIN) / 3) AS TRIMESTRE,

Month(DATE_DEB_FIN) As MOIS,

autonumber(dayname(Day(DATE_DEB_FIN)),monthname(Month(DATE_DEB_FIN))) as jourtest,

  

Day(DATE_DEB_FIN) As JOUR,

Week(DATE_DEB_FIN) As SEMAINE;

     Load Date(MinDate + IterNo() -1 ) AS DATE_DEB_FIN

     While (MinDate + IterNo() - 1) <= Num(MaxDate);

  

drop Table TRANSFERT;

2 Replies
lcloatre
Partner - Creator III
Partner - Creator III

Bonjour Chadlia,

Tu devrais t'exprimer en français, tu es dans le groupe francophone. je ne comprends pas la relation que tu veux faire entre le calendrier et les dates d'entrée et de sortie de tes agents ?

chadliagabsi
Creator II
Creator II
Author

Bonjour Laurent,

Je veux calculer le nombre d'entrées et des sorties des agents par année et par mois.

Dans mon app chaque agent a plusieurs motifs et chaque motif a une  date début et fin occupation (fin motif).

Pour que je puisse calculer le nombre des entrées je dois compter le nombre des dates début occupation minimales des agents  (c'est à dire sa première date d'occupation et je compte le nombre de date minimale par mois/année et pour les sorties je dois prendre les personnes qui sont une date maximale de fin occupation.

J'ai crée  la date Date_deb_fin qui contient tous les jours travaillés par agent.

Par exemple :

la premiere début occupation d'un agent : 02/03/2000

la dernière fin occupation : 01/10/2010

Date_deb_fin retourne l'intervalle des dates entre Début et fin occupation

J'ai ajouté à mon calendrier ce code il me retourne pour chaque agent sa date début min et sa date fin max

mais je n'arrive pas à compter le nombre des agents qui ont une date début min et date fin max. J'ai utilisé l'expression  aggr(count(min_date),ANNEE,MOIS).

min_max:

     Load Distinct(MATRICULE_AGENT) ,

      'MIN_MAX'as TYPEDATE,

     Min(DATE_DEB_FIN) AS min_date,

Max(DATE_DEB_FIN) AS max_date

     RESIDENT TRANSFERT

    group by MATRICULE_AGENT;


Mon calendrier est le suivant.

TRANSFERT:

LOAD Distinct MATRICULE_AGENT,

DEBUT_OCCUPATION as DATE_DEB_FIN,

'DEB_OCCUPATION'as TYPEDATE

Resident D_VUE_DAA;

LOAD Distinct MATRICULE_AGENT,

FIN_OCCUPATION as DATE_DEB_FIN,

'FIN_OCCUPATION'as TYPEDATE

Resident D_VUE_DAA;

Load

Distinct MATRICULE_AGENT,

DEBUT_OCCUPATION

    ,right(DATE(floor(DAA_SK_DATDEB + IterNo() -1),'DD/MM/YYYY'),10)as DATE_DEB_FIN

    , 'JOURS TRAVAILLES'as TYPEDATE

Resident D_VUE_DAA

While IterNo() <= (FIN_OCCUPATION ) - DEBUT_OCCUPATION + 1

min_max:

     Load Distinct(MATRICULE_AGENT) ,

      'MIN_MAX'as TYPEDATE,

     Min(DATE_DEB_FIN) AS min_date,

Max(DATE_DEB_FIN) AS max_date

     RESIDENT TRANSFERT

    group by MATRICULE_AGENT;

NoConcatenate

CALENDRIER:


LOAD Date(DATE_DEB_FIN) AS DATE_DEB_FIN,

     Num(Makedate(Year(Now()),Month(Now()),Day(Now()))) as datetest,

Year(DATE_DEB_FIN) AS ANNEE,

'SEMESTRE ' & Ceil(Month(DATE_DEB_FIN) / 6) AS SEMESTRE,

'TRIMESTRE' & Ceil(Month(DATE_DEB_FIN) / 3) AS TRIMESTRE,

Month(DATE_DEB_FIN) As MOIS,

autonumber(dayname(Day(DATE_DEB_FIN)),monthname(Month(DATE_DEB_FIN))) as jourtest,

 

Day(DATE_DEB_FIN) As JOUR,

Week(DATE_DEB_FIN) As SEMAINE;

     Load Date(MinDate + IterNo() -1 ) AS DATE_DEB_FIN

     While (MinDate + IterNo() - 1) <= Num(MaxDate);

 

drop Table TRANSFERT;

Merci.