Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je souhaiterai calculer le temps de présence journalier par salarié dans mon script de chargement de données, .
l'objectif étant d'obtenir une ligne par salarié et par jour.
Voici ci-dessous un exemple de ma base de données.
Je souhaiterai obtenir le résultat suivant:
J'ai essayé pas mal de choses via les fonctions previous ou peek, mais mon principal problème réside dans le fait que je n'arrive pas à obtenir une seule ligne de total par employé.
J'imagine que ce ne doit pas être très compliqué mais je n'y arrive pas.
Quelqu'un aurait-il une idée s'il vous plaît?
Bonjour, ceci n'est pas forcément la manière le plus optimisée, mais elle fonctionne.
TEST :
LOAD *,
date(Timestamp#(replace(Date,'h',':'),'DD/MM/YYYY hh:mm'),'DD/MM/YYYY') as Day,
time(Timestamp#(replace(Date,'h',':'),'DD/MM/YYYY hh:mm'),'hh:mm') as time
INLINE [
Employé,Entrée/Sortie,Date
Employé I,Entrée,20/03/2024 09h29
Employé I,Sortie,20/03/2024 12h20
Employé I,Entrée,20/03/2024 13h00
Employé I,Sortie,20/03/2024 13h10
Employé I,Entrée,20/03/2024 13h15
Employé I,Sortie,20/03/2024 17h02
Employé 2,Entrée,20/03/2024 09h00
Employé 2,Sortie,20/03/2024 12h00
Employé 2,Entrée,20/03/2024 13h00
Employé 2,Sortie,20/03/2024 16h15
]
;
TEST2:
load
Employé & Day as Clé,
Employé,
Day,
time as Time_Entrée
Resident TEST
where [Entrée/Sortie] = 'Entrée'
;
Left Join
load
Employé & Day as Clé,
time as Time_Sortie
Resident TEST
where [Entrée/Sortie] = 'Sortie'
;
TEST4:
load
Employé,
Day,
minstring(Interval(Time_Sortie - [Time_Entrée] ,'hh:mm')) as Temp
Resident TEST2
where Interval(Time_Sortie - [Time_Entrée] ,'hh:mm') > 0
group by Employé,Day ;
TEST5:
load
Employé,
date(date#(text(Day))) as Day,
time(sum(Temp)) as [Temp de présence]
Resident TEST4
group by Employé,date(date#(text(Day))) ;
drop table TEST,TEST2,TEST4;