bonjour a toute et a tous
j'ai un système du détection RFID du détection du flux entrée/sortie par zone et par matricule
j'ai besoin de récupérer la valeur du premier détection Entrée (date_entree) et la dernière sortie(date_sortie) par matricule pour une journée
voir imprime écran1
pur cela j'ai penser a row_number partition by matricule
j'ai eu comme résultat min(date_entree) et le max(date_sortiee) dans deux ligne différent voir imprime écran2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 with cte as (select distinct(ES.matricule),ES.prenom,ES.nom,row_number()over(partition by ES.matricule order by date_Entree asc)as class1,row_number()over(partition by ES.matricule order by date_sortie desc)as class2,ES.date_entree, ES.date_sortie, convert(varchar(5),DateDiff(s, date_entree, date_sortie)/3600)+':'+convert(varchar(5),DateDiff(s, date_entree, date_sortie)%3600/60)+':'+convert(varchar(5),(DateDiff(s, date_entree, date_sortie)%60)) as [hh:mm:ss] from entree_sortie_tous_zones ES inner join Effectifs E on E.matricule=ES.matricule where type_matricule='chef Atelier' and date_entree >dateadd(day,datediff(day,-1,getdate()),-1) ) select * from cte where class1=1 or class2=1 order by matricule
ce ci ne répond pas a mon besoin je veux comme résultat le min(date_entree) et le max(date_sortiee) dans une seul ligne pour que je puisse faire un différence total
Qui peut m'aider SVP sur ma demande
merci pour nos experts
Partager