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"
j'ai le message suivant:
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
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 !
Partager