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 :

Question requête imbriquée


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 60
    Points : 50
    Points
    50
    Par défaut Question requête imbriquée
    Bonjour,

    J'aimerais pouvoir recuperer en colonne le résultat d'une requête imbriquée - jusque la c'est facile - mais en passant en argument le résultat d'une des colonne de la requête principale.

    Voila l'exemple :
    Code sql : 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
    SELECT NVL(SUM(DECODE(M.SENS, 2,M.MT_MN)) / SUM(DECODE(M.SENS, 2,(M.QTE*M.QTE2))) ,0) 
              - NVL(SUM(DECODE(M.SENS, 1,M.MT_MN)) / SUM(DECODE(M.SENS, 1,(M.QTE*M.QTE2))),0) 
            ,NVL(SUM(DECODE(M.SENS, 2,M.MT_TTC)) / SUM(DECODE(M.SENS, 2,(M.QTE*M.QTE2))) ,0) 
              - NVL(SUM(DECODE(M.SENS, 1,M.MT_TTC)) / SUM(DECODE(M.SENS, 1,(M.QTE*M.QTE2))),0) 
            ,NVL(SUM(DECODE(M.SENS, 2,(M.QTE*M.QTE2))) ,0) - NVL(SUM(DECODE(M.SENS, 1,(M.QTE*M.QTE2))),0) 
            ,M.ITEM 
            ,I.LIBEL 
            ,I.DECIMALE 
            ,T.PU 
            ,(select NVL(SUM(DECODE(M.SENS, 2,(M.QTE*M.QTE2))) ,0) - NVL(SUM(DECODE(M.SENS, 1,(M.QTE*M.QTE2))),0)
                    FROM E_MVT M 
                    WHERE M.STE = 'UC' AND M.EX= '10'
                    and M.ITEM = <<<<<<<de la ligne en cours>>>>>>>>)
    FROM E_MVT M LEFT OUTER JOIN S_ITEM I  ON I.ITEM=M.ITEM AND I.STE=M.STE LEFT OUTER JOIN S_TARIF T  ON T.ITEM=M.ITEM AND T.STE=M.STE AND T.TARIF='BASE' 
    WHERE M.STE = 'UC' AND M.EX= '10' AND  M.JNL= 'FCC_B' AND M.CPTE LIKE '707%' AND M.DATCPT= '28/08/2010' 
    GROUP BY M.ITEM ,I.LIBEL ,I.DECIMALE ,T.PU ORDER BY M.ITEM

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 391
    Points
    18 391
    Par défaut
    Il ne faut pas renommer vos deux tables avec le même alias !
    Et un conseil, un peu de mise en page histoire de rendre votre code plus lisible, pour vous, pour nous, pour ceux qui passeront après.

    En trois minutes avec la barre espace pour seul outil :
    Code SQL : 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 M.ITEM, I.LIBEL, I.DECIMALE, T.PU,
             NVL(SUM(DECODE(M.SENS, 2, M.MT_MN))  / SUM(DECODE(M.SENS, 2, M.QTE * M.QTE2)), 0) -
             NVL(SUM(DECODE(M.SENS, 1, M.MT_MN))  / SUM(DECODE(M.SENS, 1, M.QTE * M.QTE2)), 0) , 
             NVL(SUM(DECODE(M.SENS, 2, M.MT_TTC)) / SUM(DECODE(M.SENS, 2, M.QTE * M.QTE2)), 0) -
             NVL(SUM(DECODE(M.SENS, 1, M.MT_TTC)) / SUM(DECODE(M.SENS, 1, M.QTE * M.QTE2)), 0) ,
             NVL(SUM(DECODE(M.SENS, 2, M.QTE * M.QTE2)) ,0) - NVL(SUM(DECODE(M.SENS, 1, M.QTE * M.QTE2)), 0),
             (SELECT NVL(SUM(DECODE(M2.SENS, 2, M2.QTE * M2.QTE2)), 0) -
                     NVL(SUM(DECODE(M2.SENS, 1, M2.QTE * M2.QTE2)), 0)
                FROM E_MVT M2
               WHERE M2.STE = 'UC'
                 AND M2.EX  = '10'
                 AND M2.ITEM = M.ITEM)
        FROM E_MVT M
             LEFT OUTER JOIN S_ITEM I
               ON I.ITEM  = M.ITEM
              AND I.STE   = M.STE
             LEFT OUTER JOIN S_TARIF T
               ON T.ITEM  = M.ITEM
              AND T.STE   = M.STE
              AND T.TARIF = 'BASE' 
       WHERE M.STE = 'UC'
         AND M.EX  = '10'
         AND M.JNL = 'FCC_B'
         AND M.CPTE LIKE '707%'
         AND M.DATCPT = to_date('28/08/2010' , 'dd/mm/yyyy')
    GROUP BY M.ITEM, I.LIBEL, I.DECIMALE, T.PU
    ORDER BY M.ITEM ASC;

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 60
    Points : 50
    Points
    50
    Par défaut merci à vous
    c'est parfait !

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

Discussions similaires

  1. Pb requête imbriquée
    Par ddams dans le forum Requêtes
    Réponses: 11
    Dernier message: 20/04/2004, 12h13
  2. [Requête] Faire une requête imbriquée?
    Par sekiryou dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/01/2004, 22h52
  3. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29
  4. Requêtes imbriquées ?
    Par Ph. B. dans le forum XMLRAD
    Réponses: 7
    Dernier message: 06/05/2003, 13h19
  5. Requête imbriquée et indexes INTERBASE
    Par vadim dans le forum InterBase
    Réponses: 2
    Dernier message: 06/09/2002, 16h15

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