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

SQL Oracle Discussion :

Besoin d'Aide pour Jointure Externe


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 35
    Par défaut Besoin d'Aide pour Jointure Externe
    Bonjour, voici mon problème :

    J'ai 3 tables :
    1) Types_ORIENTATION (Orient_code, libelle) qui contient 20 codes différents
    2) Bilan_ORIENTATION (Numero_interv, Orient_code, nombre)
    3) Intervention (Numero_interv,Date,intervenant)

    Je veux faire la requête me permettant d'extraire les codes, et libellés de la table TYPE_ORIENTATION avec pour chaque ligne la SOMME de nombre de BILAN_INTERVENTION dont les interventions ont été effectuées entre le 01/01/2012 et le 31/12/2011 pour l'intervenant X

    Ma requête est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Types_ORIENTATION.ORIENT_CODE,Types_ORIENTATION.LIBELLE,SUM(Bilan_ORIENTATION.NOMBRE) 
    FROM Types_ORIENTATION, Bilan_ORIENTATION, Intervention 
    WHERE Types_ORIENTATION.Orient_code = Bilan_ORIENTATION.Orient_code  AND Intervention.Numero_Interv = Bilan_ORIENTATION.Numero_Interv
    AND Intervention.DATE >= 20120101 AND Intervention.DATE <= 20121231 AND Intervention.INTERVENANT = 4001
    GROUP BY Types_ORIENTATION.CODE,Types_ORIENTATION.LIBELLE
    ORDER BY Types_ORIENTATION.CODE,Types_ORIENTATION.LIBELLE;
    Le problème, c'est que cette requête ne me renvoie pas les Codes qui n'ont pas été trouvés dans ma table BILAN ... je voudrais élargir ma requête avec une JOINTURE EXTERNE (+) mais je n'arrive pas à concrétiser ma demande pour obtenir la liste des 20 codes et libellés de ma table avec la somme de chacun (même ceux à 0) selon les conditions de dates et d'intervenant (ces conditions sont correctes, cela fonctionne bien ... il n'y a que les + des jointures externes que je ne sais pas OU METTRE)

    Merci d'avance

  2. #2
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Si ton SGBD te le permet il serait temps de passer aux jointures utilisées actuellement.

    Pour ta somme je te conseillerais de faire un deux étapes :

    1- ta requête avec la jointure externe qui te renvoi toutes les données respectant tes conditions

    2- une requête calculant la somme avec en sous-requête ou table temporaire la requête précédente

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 35
    Par défaut
    Merci pour ta réponse mais en traficotant, j'ai réussi à placer les + aux bons endroits pour que la jointure externe me rapatrie toutes mes données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT Types_ORIENTATION.ORIENT_CODE,Types_ORIENTATION.LIBELLE,SUM(Bilan_ORIENTATION.NOMBRE) 
    FROM Types_ORIENTATION, Bilan_ORIENTATION, Intervention 
    WHERE Types_ORIENTATION.Orient_code = Bilan_ORIENTATION.Orient_code (+) AND Intervention.Numero_Interv (+) = Bilan_ORIENTATION.Numero_Interv
    AND Intervention.DATE (+) >= 20120101
    AND Intervention.DATE (+) <= 20121231
    AND Intervention.INTERVENANT (+) = 4001
    GROUP BY Types_ORIENTATION.CODE,Types_ORIENTATION.LIBELLE
    ORDER BY Types_ORIENTATION.CODE,Types_ORIENTATION.LIBELLE;
    Merci quand même

Discussions similaires

  1. [MySQL] besoin d'aide pour jointure à réaliser
    Par nebil dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 17/07/2008, 15h15
  2. Besoin d'aide pour une jointure svp
    Par plex dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/10/2007, 13h27
  3. besoin d'aide pour lien externe
    Par aries44 dans le forum Flash
    Réponses: 2
    Dernier message: 07/05/2007, 07h25
  4. besoin d'aide pour une jointure avec une exclusion
    Par manu_71 dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/02/2007, 11h22
  5. Besoin d'aide pour des jointures de tables
    Par supersmoos dans le forum Requêtes
    Réponses: 4
    Dernier message: 14/12/2006, 15h38

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