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.
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 :
- EVENEMENT
- TEXTE
- 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.
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 :
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 :
Résultat :
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;
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
Partager