Bonsoir,

j'ai une table de clients (table_client):

ID_CLIENT NOM
22 Jean
23 Louis
24 Bernard
... ...

qui est reliée à une autre table avec une réfence par client (table_ref):

ID REF ID_CLIENT
33 a1123 22
34 a0001 22
31 a1123 23
30 a0003 26
40 a11ee 25
66 a0001 24
90 a1123 24

Sachant que chaque client peut avoir plusieurs references, j'arrive à regrouper mes clients par reference ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT
tr.ID,                   
tr.REF, 
COUNT(DISTINCT tr.ID_CLIENT)
 
FROM table_client AS tr
 
GROUP BY tr.REF
 
HAVING COUNT(DISTINCT tr.ID_CLIENT)>1;

Ce qui me retourne la liste :

ID REF COUNT
33 a1123 3
34 a0001 2


Car cela coincide avec les élements :

ID | REF | COUNT
-------------------------------
33 | a1123 | 3
//----33 | a1123 | 22
//----31 | a1123 | 23
//----90 | a1123 | 24

34 | a0001 | 2
//----34 | a0001 | 22
//----66 | a0001 | 24

Ok ! Mais comme on peut le voir le ID_CLIENT 22 remonte dans les 2 regroupements !

Comment faire pour recuperer les regrouprements par REF dont les ID_CLIENT n'ont pas encore étaient remontés ?

Afin d'obtenir cette liste :

ID | REF | COUNT
-------------------------------
33 | a1123 | 3
//----33 | a1123 | 22
//----31 | a1123 | 23
//----90 | a1123 | 24

// Ignoré car ID_CLIENT 22, 24 sont déjà dans le regroupement de REF 'a1123'
//34 | a0001 | 2
//----34 | a0001 | 22
//----66 | a0001 | 24

Merci de votre aide,

FlashPapa