IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

[Requete SQL] récupération d'un résultat sous forme d'un tableau


Sujet :

Oracle

  1. #1
    Invité
    Invité(e)
    Par défaut [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 : 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')
    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

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par Nebuka
    Avez-vous une idée ?
    Oui, cf ce message : #29

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci Xo, j'ai bien lu le message #29, mais j'ai du mal à voir comment je peux l'appliquer à mon problème. J'ai plus de tables que dans l'exemple, et je ne sais pas comment les rajouter.
    Où alors j'ai pas tout compris de la démarche de l'exemple.

    Est-ce que quelqu'un pourrais m'aider ?

    Merci

    Nebuka

  4. #4
    Invité
    Invité(e)
    Par défaut
    Après quelques temps de recherches, voici ce que j'ai réussis à faire.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select N1.ARTI_CODE_COMPOSANT
      FROM NOMENCLATURE N1
      start with (N1.ARTI_CODE_COMPOSE IN (Select C1.ARTI_CODE
                                                from COMMANDE C1
                                                where C1.DT='08/11/06'))
      connect by prior
      N1.ARTI_CODE_COMPOSANT=N1.ARTI_CODE_COMPOSE
      order by N1.ARTI_CODE_COMPOSANT
    mon soucis est que je n'arrive pas à faire le lien avec la table article.
    Si je rajoute une condition avec la table article dans le select, j'obtiens systématiquement le message :
    ORA-30928 : Tablespace temporaire insuffisant pour la connexion par la phase filtrage

    Est-ce que quelqu'un aurai une idée pour faire avancer mon problème ?

    Merci

    Nebuka

Discussions similaires

  1. [MySQL] Affichage des résultats sous forme d'un tableau
    Par franquis dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 19/11/2009, 15h25
  2. [MySQL] Afficher les résultats sous forme d'un tableau
    Par Invité dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/06/2008, 22h53
  3. Probleme récupération d'un pdf sous forme d'un tableau de byte
    Par wallyfr dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 31/08/2006, 16h10
  4. Récupération d'une requête sous forme de tableau
    Par le--handballeur dans le forum iReport
    Réponses: 2
    Dernier message: 01/08/2006, 15h56
  5. Pb de requete SQL (récupération de premier)
    Par rapace dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/06/2006, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo