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
Partager