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 :

[SQL] Besoin d'aide sur une requête


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [SQL] Besoin d'aide sur une requête
    Bonjour à tous,

    Base Oracle utilisée : 9iR2.
    Je dois écrire une procédure assez compliquée et afin d'optimiser les performances au maximum, j'essaie de minimiser mon nombre de curseurs imbriqués et d'optimiser au maximum mon code SQL pour éviter au maximum les intéractions entre le moteur SQL et le moteur PL/SQL. (Ai je déjà raison sur ce point là ?)

    J'ai réussi à tenir cet objectif sur la plupart du code mais il me reste un problème sur une partie de requête.

    Voici la forme de ma table principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    NIVEAU        SEQUENCE                TACHE         CODE_FACT
    1                1                    tacheA        inconnu
    2                2                    tacheB 
    3                3                    tacheC 
    1                4                    tache2        TITI
    2                5                    tache5 
    3                6                    tache7        XZYY
    4                7                    tacheZ 
    5                8                    tacheW
    1                9                    tache6        TOTO
    2                10                   tache9        XXXX
    Et voici ce que je recherche à faire :
    Donner toujours les taches elementaires (soit de dernier niveau pour une branche) avec le dernier code_fact de la branche c'est à dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    NIVEAU        SEQUENCE                  TACHE        CODE_FACT
    3                3                      tacheC       inconnu
    5                8                      tacheW       XZYY
    2               10                      tache9       XXXX
    J'ai essayé tout ce que j'avais en magasin et en particulier les fonctions analytiques mais là je commence à sécher et je me dis que je vais passer par du PL.

    Auriez vous des idées ?

    Merci d'avance.

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    J'ai trouvé avec bcp de mal !

    Enorme oubli dans mon énoncé, il y a une colonne booléenne (EST_TACHE_ELEM) qui me permet de savoir si la tache est élémentaire ou non.

    La requête SQL donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    select * from (
         select niveau,
                tache,
                sequence,
                est_tache_elem,
                substr(max(case when code_fact is not null
                           then to_char(niveau, 'fm0000000000') || code_fact
                           end) over (order by sequence rows between niveau preceding 
                                                             and current row),11)
           from table
         order by sequence)      
    where est_tache_elem = 1

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide sur une requête SQL
    Par omran.info dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/11/2012, 10h28
  2. Besoin d'aide sur une requête SQL
    Par Khyinn dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/07/2010, 21h23
  3. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 16h26
  4. Réponses: 1
    Dernier message: 03/08/2005, 11h41

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