Bonjour,

J'ai une demande que je ne sais pas comment aborder en SQL.

Je peux l'exécuter en SQL 2008 ou en SQL 2012 si besoin.

J'ai une table, nommons là Table1, qui contient une liste d'usager et un numéro de document.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Custodian	NoDocument
Jacinthe  	14108     
Philippe  	14108     
Philippe  	14109     
Philippe  	14110     
Yohan     	14108     
Yohan     	14110
J'ai besoin de produire un tableau indiquant le nombre de document en commun pour chacune des personnes. Un résultat comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
        Jacinthe   Philippe   Yohan
Jacinthe   1           1         1
Philippe   1           3         2
Yohan      1           2         2
Ce tableau signifie que Jacinthe et Philippe ont 1 document en commun (le numéro 14108). Philippe et Yohan ont 2 documents en commun (les numéros 14108 et 14110). L'intersection pour une même personne indique seulement le nombre de document qu'il possède.

Je serais capable de produire un résultat avec deux curseurs imbriquées. Mais surement qu'une solution plus propre doit exister avec la récursivité, mais je maitrise moins bien ces concepts.

Avez vous une idée de piste de solution à me fournir pour m'aider à produire un résultat?

Merci !