Bonjour.

Je me tourne vers vous car je n'arrive pas à faire ma requete pour obtenir ce que je veux

J'ai une table SuiviCollaborateurs avec 4 champs:IdCollaborateur (non unique),Theme,Commentaire et Datesaisie


dans les themes, j'ai entre autre 'Caution' et 'Retour caution'

Sachant que pour un meme id, je peux avoir plusieurs 'Caution' et 'Retour caution' comme Theme, je cherche à remonter les id qui ont plus de 'Caution' que de 'Retour caution'.
Et oui, l'id me servira pour récuperer des infos dans une table, mais j'espére me débrouiller pour modifier la requete quand elle me repontera les id .

la requete de verification est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
select IdCollaborateur,Theme,COUNT(IdCollaborateur) as nombre from SuiviCollaborateurs
where (Theme='Caution' or Theme='Retour caution')
group by IdCollaborateur,Theme
order by IdCollaborateur,Theme
elle donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
61	Caution	5
61	Retour caution	2
75	Caution	1
75	Retour caution	1
117	Caution	3
117	Retour caution	2
422	Caution	3
422	Retour caution	1
423	Caution	2
Ma requete qui ne me donne pas satisfaction est :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
select  IdCollaborateur
from SuiviCollaborateurs
where Theme='Caution'and
(select count(IdCollaborateur) from SuiviCollaborateurs where Theme='Caution')>
(select count (IdCollaborateur) from SuiviCollaborateurs where Theme='Retour caution')
group by IdCollaborateur
order by IdCollaborateur
et le resultat:
on devrait avoir que 61-117-422-423

Je sais bien que c'est parce que dans la clause where, la requete balaie tous les id et ne prends pas en compte que celui du select en cours mais je n'arrive pas voire comment faire.

Merci de vos suggestion.