1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| SELECT id_personne
, date_pointe
, MAX(CASE WHEN ordre_pointe = 1 THEN heure_pointe ELSE NULL END) AS entree_1
, MAX(CASE WHEN ordre_pointe = 2 THEN heure_pointe ELSE NULL END) AS sortie_1
, MAX(CASE WHEN ordre_pointe = 3 THEN heure_pointe ELSE NULL END) AS entree_2
, MAX(CASE WHEN ordre_pointe = 4 THEN heure_pointe ELSE NULL END) AS sortie_2
FROM
( SELECT id_personne
, date_pointe
, heure_pointe
, RANK() OVER(PARTITION BY id_personne, date_pointe ORDER BY heure_pointe) AS ordre_pointe
FROM pointage
) AS ordonne
GROUP BY
id_personne
, date_pointe
; |
Partager