2 Replies Latest reply: Jan 15, 2018 4:03 AM by Chadlia Gabsi RSS

    Integration min max date in calendar

    Chadlia Gabsi

      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;

        • Re: Integration min max date in calendar
          LAURENT CLOATRE

          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 ?

            • Re: Integration min max date in calendar
              Chadlia Gabsi

              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.