11 Replies Latest reply: May 22, 2017 2:47 AM by anis lakrouf RSS

    Cumul sur une année glissante

    anis lakrouf

      Bonjour, j'ai un probléme avec le cumul sur une année glissante,

      j'ai 2 fichiers :

       

       

      Eff:

      LOAD Société,

           Date,

           Heures

      FROM

      [.................................]

      (biff, embedded labels, table is Feuil1$);

      Concatenate(Eff)

      LOAD Société,

           [Date-Acci],

           [Nombre jours arrêt],

           Type_Acc,

           [Prise en compte]

      FROM

      [.......................................]

      (biff, embedded labels, table is Feuil1$);

       

      et un calendrier:

      MinMaxTmp:

      LOAD

      min(Date) as MinDate,

      max(Date) as MaxDate

      Resident Eff;

       

       

      Let vMinDate = Peek('MinDate',0, 'MinMaxTmp');

      TRACE Date minimum : $(vMinDate);

       

       

      Let vMaxDate = Peek('MaxDate',0, 'MinMaxTmp');

      TRACE Date maximum : $(vMaxDate);

       

       

      Calendar_TMP:

      LOAD

      date($(vMinDate)+RowNo()-1) as DateTmp

      autogenerate($(vMaxDate)-$(vMinDate)+1);

       

       

      Temps:

      LOAD

      DateTmp as Date,

      Date(DateTmp,'DD/MM/YYYY') as DateExplicite,

      Year(DateTmp) as année,

      Month(DateTmp) as mois,

      Num(Month(DateTmp),'# ##0') as MoisEnum,

      Day(DateTmp) as Jour,

      ceil(month(DateTmp)/3) as TrimestreEnum,

      InYearToDate(DateTmp, Today(), 0)*-1 as CurYTDFlag,

      InYearToDate(DateTmp, Today(),-1)*-1 as LastYTDFlag,

      InMonthToDate(DateTmp, Today(),0)*-1 as CurMTDFlag,

      InMonthToDate(DateTmp,Today(),-1)*-1 as LastMTDFlag,

      InMonthToDate(DateTmp, AddYears(Today(),-1),0)*-1 as LastYMTDFlag,

      if(WeekDay(DateTmp)<5,1,0) as JourOuvre,

      AutoNumber(Num(MonthStart(DateTmp)), 'MoisSequentiel') as MoisSequentiel

      Resident Calendar_TMP

      order by DateTmp ASC;

       

       

      Drop Tables Calendar_TMP, MinMaxTmp;

       

       

      ChoixTemps:

      LOAD

      Date,

      'YTD' as _T

      Resident Temps

      where CurYTDFlag=1 or LastYTDFlag=1

      ;

       

       

      Concatenate(ChoixTemps)

      LOAD

      Date,

      'MTD' as _T

      Resident Temps

      where CurMTDFlag=1 or LastYMTDFlag=1

      ;  

       

       

       

       

      je veux avoir un cumul sur une année glissante  dans un graphe suivant la formule:

      =round(((sum( {$<MoisSequentiel = {">$(#=(MoisSequentiel-12))<=$(#=MoisSequentiel)"}>}  if( [Prise en compte]='oui'  and Type_Acc like 'AT*' ,1,0 ) ))*1000000  )/sum({$<MoisSequentiel = {">$(#=(Max(MoisSequentiel)-12))<=$(#=Max(MoisSequentiel))"}>}Heures)   )



      Mon probléme c'est que normalement j'aurai que 2 valeurs une pour le moi de mars 2017 et fevrier 2017 car mes valeurs commence de mars 2016.  mais j'ai plusieurs valeurs.

      Merci a vous.

      J'ai joint un jeu de données.