Bonjour,

Imagineons que j'ai une table PRESENCE et une table PERSONNE.

Citation Envoyé par Table PERSONNE
---ID---NOM---
---1----AA----
---2----BB----
---3----CC----
---4----DD----
---5----EE----
---6----FF----
Citation Envoyé par Table PRESENCE
---PERSONNE_FK----ANNEE-----TRIMESTRE---
-------1-----------2007---------3-------
-------1-----------2007---------2-------
-------1-----------2007---------1-------
-------2-----------2007---------3-------
-------3-----------2007---------3-------
-------4-----------2007---------3-------
-------5-----------2007---------2-------
-------6-----------2007---------1-------
J'aimerais pouvoir calculer le nombre de personnes présente sur 3 trimestres SANS DOUBLON.

Exemple:
AA (ID no 1) se retrouve 3 fois sur les trimestres 1, 2, 3 et donc, il comptera pour 1 alors que tout le reste sera compté +1 (car à chaque fois une personne différente et donc pas de doublon).

---TOTAL---
----6-----
Comment pourrais-je m'y prendre?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
En temps normal, j'aurais utilisé les SUM() pour tout compter, mais je ne vois pas comment comparer les données de différents trimestres entre elles pour localiser les doublons :/

Merci d'avance!