1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
WITH PERSONNE (ID, NOM) AS
(
SELECT '1', 'AA' union ALL
SELECT '2', 'BB' union ALL
SELECT '3', 'CC' union ALL
SELECT '4', 'DD' union ALL
SELECT '5', 'EE' union ALL
SELECT '6', 'FF'
)
, PRESENCE (PERSONNE_FK, ANNEE, TRIMESTRE) AS
(
SELECT 1, '2007', '3' union ALL
SELECT 1, '2007', '2' union ALL
SELECT 1, '2007', '1' union ALL
SELECT 2, '2007', '3' union ALL
SELECT 3, '2007', '3' union ALL
SELECT 4, '2007', '3' union ALL
SELECT 5, '2007', '2' union ALL
SELECT 6, '2007', '1'
)
SELECT
PERSONNE.NOM,
SUM(CASE WHEN PRESENCE.ANNEE like '2007' AND PRESENCE.TRIMESTRE like '3' THEN +1 END) AS trimCourant,
SUM(CASE WHEN PRESENCE.ANNEE like '2007' AND PRESENCE.TRIMESTRE like '2' THEN +1 END) AS trimMoins1,
SUM(CASE WHEN PRESENCE.ANNEE like '2007' AND PRESENCE.TRIMESTRE like '1' THEN +1 END) AS trimMoins2
FROM PERSONNE
INNER JOIN PRESENCE ON PRESENCE.PERSONNE_FK = PERSONNE.ID
GROUP BY PERSONNE.NOM |
Partager