Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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;
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 ?
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.