Appliquer des procédures à une colonne d'un SELECT
Bonsoir la communauté.
J'ai un problème, je n'ai jamais essayé quelque chose de ce genre. De quoi est-ce qu'il est question?
1) J'ai écrit la requête suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| SELECT f.vall REFER,
(SELECT f.vall REFER
FROM DELTAERP.COMFNOM f
WHERE f.cdos = '01' AND f.ctab = numt AND f.cacc = ind AND f.nume = 3) ACTIF,
(SELECT f.vall REFER
FROM DELTAERP.COMFNOM f
WHERE f.cdos = '01' AND f.ctab = numt AND f.cacc = ind AND f.nume = 4) LIGNES,
(SELECT f.vall REFER
FROM DELTAERP.COMFNOM f
WHERE f.cdos = '01' AND f.ctab = numt AND f.cacc = ind AND f.nume = 5) BRUTN,
(SELECT f.vall REFER
FROM DELTAERP.COMFNOM f
WHERE f.cdos = '01' AND f.ctab = numt AND f.cacc = ind AND f.nume = 6) AMOR_PROV_N,
(SELECT f.vall REFER
FROM DELTAERP.COMFNOM f
WHERE f.cdos = '01' AND f.ctab = numt AND f.cacc = ind AND f.nume = 7) NETN,
(SELECT f.vall REFER
FROM DELTAERP.COMFNOM f
WHERE f.cdos = '01' AND f.ctab = numt AND f.cacc = ind AND f.nume = 8) NET_N_MOINS_UN
FROM DELTAERP.COMFNOM f
LEFT JOIN ( SELECT DISTINCT f1.cacc ind
FROM DELTAERP.COMFNOM f1
WHERE f1.cdos = '01' AND f1.ctab = 30001
ORDER BY f1.cacc DESC)
ON ind = f.cacc
LEFT JOIN ( SELECT DISTINCT f2.ctab numt
FROM DELTAERP.COMFNOM f2
WHERE f2.cdos = '01' AND f2.ctab = 30001)
ON numt = f.ctab
WHERE f.cdos = '01' AND f.ctab = 30001 AND f.nume = 2 |
Elle s'exécute bien et le résultat est donné ci dessous:
REFER ACTIF LIGNES BRUTN AMOR_PROV NETN NET_N_MOINS_UN
--------------------------------------------------------------------------
201,202,206,S
201,S
202,S
206,S
Ceci represente les resultats de la colonne BRUTN
2) Je voudrais appliquer une procédure uniquement a la colonne BRUTN. Cette procédure doit permettre de fabriquer les sous chaines avec comme séparateurs les virgules pour chaque ligne. Ces sous chaines seront utilisés dans d'autres procédures afin de calculer un montant qui viendra remplacer les valeurs de cette colonne.
Par exemple: pour la 1ere ligne, les sous chaines sont: "201", "202", "206", "S"
pour la deuxième ligne les sous chaines sont: "201", "S"
et ainsi de suite pour les autres lignes.
Je ne sais pas comment m'y prendre.
Merci..