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 :
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.
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
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')
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
Partager