Bonjour,
j'ai besoin en une seule de requete de concatener un champ texte de plusieurs lignes... le nombre de ligne etant variable evidemment

je me suis donc interréssé aux CTE et j'ai écrit la requête suivante:

La table est la suivante:
EVT (typ_evt, id_evt, txt_evt)
la clé primaire étant (typ_evt, id_evt)

Et je veux concaténer tous les champs texte d'un typ_evt donné

par exemple si j'ai
EVT1 1 "evenement evt1 1"
EVT1 2 "evenement evt1 2"
EVT1 3 "evenement evt1 3"
EVT2 1 "evenement evt2 1"
EVT2 2 "evenement evt2 2"

Et je veux avoir, par exemple pour EVT1:
"evenement evt1 1, evenement evt1 2, evenement evt1 3"


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
WITH	T1 
AS 	(
        -- l'element de depart
        SELECT typ_evt, id_evt, txt_evt as mot
		FROM   evt
		WHERE  typ_evt = 'EVT1' AND id_evt = 1
	UNION ALL
                -- la recursion
		SELECT evt.typ_evt, evt.id_evt, mot + ',' + evt.txt_evt 
			FROM evt
				INNER JOIN T1 ON T1.typ_evt = evt.typ_evt and T1.id_evt = evt.id_evt)
-- le résultat
SELECT txt_evt from t1
j'ai le message suivant:
Les types ne correspondent pas entre la partie d'ancrage et la partie récursive dans la colonne "mot" de la requête récursive "T1".

Bon, j'ai pas trop trop encore compris les CTE, mais je pense que me requête n'est pas loin de la vérité....

merci de votre aide !