Bonsoir,

désolé pour ce titre un peu étrange, je ne savais pas vraiment comment résumer ma problématique =)


Vous allez comprendre assez facilement ce que je veux avec l'exemple suivant.

Admettons une table avec la structure minimale suivante

idPersonne numDep portion (il y a d'autres chamaps mais qui ne m'intéresse pas dans l'immédiat).


Dans cette table on aurait donc par exemple la séquence suivante d'enregistrement

1-1-1
1-1-2
1-1-3
1-2-1
1-2-2

L'idée c'est que je voudrais "concaténer les potions d'une même personne et déplacement.

Donc en résultat je voudrais avoir

idPersonne numDep Portion1 Portion2 .... Portion n

1-1-1-2-3
1-2-1-2


La première chose à remarquer c'est que le nombre de portion est variable d'une ligne à l'autre et ne peut donc pas être prédéfini à l'avance.

Je ne sais pas si cela est possible, et j'aimerais bien avoir votre avis !



EDIT: Voilà ce que j'ai tenté

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
select idinsee , numdep ,STUFF((Select ','+portion
from resultats.trajets_consolides T1
where T1.idinsee=T2.idinsee and T1.numdep=T2.numdep
FOR XML PATH('')),1,1,'') from resultats.trajets_consolides T2
Et l'erreur que j'obtiens

ERREUR: erreur de syntaxe sur ou près de « XML »
LINE 4: FOR XML PATH('')),1,1,'') from resultats.trajets_consolides ...
^
********** Erreur **********

ERREUR: erreur de syntaxe sur ou près de « XML »
État SQL :42601
Caractère : 144


J'ai trouvé ce modèle de requête sur internet, mais je ne suis même pas certain qu'elle soit correcte.