[Requete SQL] récupération d'un résultat sous forme d'un tableau
Bonjour,
j'ai un petit soucis pour récupérer les résultats d'une requête sous Oracle.
Voilà le shema simplifié :
article
code
désignation
valide
nomenclature_article
article_composé (code de l'article composé des différents composants)
article_composant (code de l'article qui compose l'article composé)
commande
numero
code_article
date
La table article contient tout les articles de la base (composé et composant).
J'ai actuellement une requête qui me ramène tout les articles "valide" des différentes commande à une date donnée. J'ai ce résultat sous cette forme :
Commande1 | code_article (aussi appelé article de tête) | validité (O/N) | désignation
|-1 code article_composant (niv 1) | vilidité (O) | désignation | article_composant (niv 1)
|-2 code article_composant (niv 1) | vilidité (N) | désignation | article_composant (niv 1)
--|-2.1 code article_composant (niv 2) | vilidité (O) | désignation | article_composant (niv 2)
--|-2.2 article_composant (niv 2) | vilidité (O) | désignation | article_composant (niv 2)
|-3 code article_composant (niv 1) | vilidité (N) | désignation | article_composant (niv 1)
--|-3.1 code article_composant (niv 2) | vilidité (O) | désignation | article_composant (niv 2)
----|-3.1.1 code article_composant (niv 3) | vilidité (O) | désignation | article_composant (niv 3)
Je peux avoir plusieurs articles valides sur plusieurs niveaux. Ce résultat ne me permet pas de regrouper par article valide.
Ma requête :
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
|
SELECT
C1.CDE_NUMERO, C1.CDE_ARTI_CODE, C1.CDE_DT,
A1.ARTI_DESIGNATION, A1.ARTI_VALIDE,
N1.ARTI_CODE_COMPOSANT,
A2.ARTI_DESIGNATION, A2.ARTI_VALIDE,
N2.ARTI_CODE_COMPOSANT,
A3.ARTI_DESIGNATION, A3.ARTI_VALIDE,
N3.ARTI_CODE_COMPOSANT,A3.ARTI_VALIDE,
A4.ARTI_DESIGNATION, A4.ARTI_VALIDE,
N4.ARTI_CODE_COMPOSANT
FROM
COMMANDE C1,
NOMENCLATURE N1, ARTICLE A1,
NOMENCLATURE N2, ARTICLE A2,
NOMENCLATURE N3, ARTICLE A3,
NOMENCLATURE N4, ARTICLE A4
WHERE C1.CDE_DT='DATE DU JOUR'
AND N1.ARTI_CODE_COMPOSE=C1.ARTI_CODE
AND N1.ARTI_CODE_COMPOSE=A1.ARTI_CODE
AND N1.ARTI_CODE_COMPOSANT=A2.ARTI_CODE
AND N2.ARTI_CODE_COMPOSE(+)=A2.ARTI_CODE
AND N2.ARTI_CODE_COMPOSANT=A3.ARTI_CODE(+)
AND N3.ARTI_CODE_COMPOSE(+)=A3.ARTI_CODE
AND N3.ARTI_CODE_COMPOSANT=A4.ARTI_CODE(+)
AND N4.ARTI_CODE_COMPOSE(+)=A4.ARTI_CODE
AND (A1.ARTI_VALIDE='O' OR A2.ARTI_VALIDE='O' OR A3.ARTI_VALIDE='O' OR A4.ARTI_VALIDE='O') |
J'aimerai plûtot avoir un retour de résultat sans notion de niveau pour pouvoir faire la somme des différents codes articles. A savoir que je peux avoir le même code article dans différents niveaux.
L'idéal serait d'avoir le résultat sous cette forme le tout regroupé par code article valide où j'ai sur chaque ligne :
N° commande | code Article tête | code article_composant valide
Avez-vous une idée ?
Nebuka