Bonjour à tous,

Si l'on regarde le résultat de ma requête ci-dessous, ce sont les valeurs de la colonne SZINHALT que j'ai surligné en verre que je dois concaténer selon une certaines méthode que je vais vous expliquer ci-dessous.
Nom : IMG1.png
Affichages : 810
Taille : 24,8 Ko

Comme vous pouvez le voir, j'ai encadré en rouge les divers éléments à concaténer. En fait, si nous prenons par exemple les 3 premières lignes, voici le résultat que je souhaiterais avoir : "ANNULE OU REMBOURSE"
Pour le deuxième encadré : "PLUS DE PASSAGE"
Pour le troisième encadré : "EXPIRE DEPUIS: %d, %d, %d"
Pour le quatrième encadré : " HORS SERVICE"
Pour le cinquième : "FORFAIT EXPIRE DEPUIS: %02d:%02d"
Enfin pour le dernier encadré : "PAS ENCORE VALABLE"

Je travail avec 3 tables pour avoir le résultat obtenu ci-dessus (cf capture d'écran ci-dessus)
Voici comment je pourrais nomer ces tables SQL :
  1. EVENEMENT
  2. TEXTE
  3. CONFIG : N° DES TEXTES + N° DES LIGNES DES TEXTES A CONCATENER


Je dois sortir 1 ligne par EVENEMENT avec son texte correspondant et pour avoir ces textes correspondant je dois passer la ta table CONFIG où il y a les numéros des textes et les numéros des lignes de textes à concaténer.

Finalement, je dois donc faire de la concaténation via la table de CONFIG et c'est la tout mon questionnement. Voici les deux colones sur lesquelles je dois travailler.
Nom : IMG2.png
Affichages : 720
Taille : 7,5 Ko

En fait sur l'image que vous voyez juste ci-dessus j'ai deux colonnes. Je dois concaténer les valeurs de droites dans un ordre croissant et ce, seulement si la valeur de gauche correspond. J'ai surligné pour vous aider à comprendre le raisonnement.
par exemple si on prend les lignes ou sur la première colonne c'est noté 9 cela doit se transformer comme ça :
Nom : IMG3.png
Affichages : 706
Taille : 3,8 Ko
Le 0, le 1, et le 2 correspondent en fait au différent texte encadré en rouge sur ma première capture d'écran.

je vais désormais vous montrer à quoi ressemble ma requête actuel ainsi que son résultat.

Code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT
  TABSONDERFALLSIGNAL.SZNAME, /* TABLE EVENEMENT */
  TABSONDERFALLSIGNAL.NLAMPENCODEGRUEN AS VERT, /* EVENT CODE VERT */
  TABSONDERFALLSIGNAL.NLAMPENCODEROT AS ROUGE, /* EVENT CODE ROUGE */
  TABSONDERFALLSIGNAL.NLAMPENCODEGELB AS JAUNE, /* EVENT CODE JAUNE */
  TABDISPLAYTEXTE.SZINHALT /* TABLE TEXTE */
FROM
  TABSONDERFALLSIGNAL
INNER JOIN 
  TABDISPLAYTEXTSONDERFALL /* TABLE CONFIG AVEC LES NUMEROS  / EN GROS 1 NUMERO = 1 TEXTE */
ON 
  TABSONDERFALLSIGNAL.NSONDERFALLCODE = TABDISPLAYTEXTSONDERFALL.NSONDERFALLCODE
  /* CONCATENATION ICI JE PENSE */
INNER JOIN 
  TABDISPLAYTEXTE
ON 
  TABDISPLAYTEXTSONDERFALL.NDISPLAYTEXTNR = TABDISPLAYTEXTE.NDISPLAYTEXTNR;
Résultat :
Nom : IMG4.png
Affichages : 711
Taille : 20,9 Ko

Pouvez-vous m'aider à résoudre ce problème en me donnant des pistes à suivre ?
Je vous remercie tous par avance pour votre aide.

Bonne journée,
Bien Cordialement,
Martin