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 :

Problème de SQL !


Sujet :

Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Points : 45
    Points
    45
    Par défaut Problème de SQL !
    Bonjour à tous et à toutes,

    Mon soucis est que je n'arrive pas à écrire une requête SQL
    Voici le cas :
    J'ai deux tables :
    GROUPE
    - ID_GROUPE (Primary key)
    - GROUPE (nom du groupe)
    - RESPONSABLE (nom du responsable) --> foreign Key de ID_AGENT
    - RESPONSABLE_ADJOINT (nom du responsable Adj) --> foreign key de ID_AGENT

    AGENT
    - ID_AGENT (primary key)
    - NOM (nom de l'agent)
    - PRENOM (prenom de l'agent)

    Je souhaite afficher le contenu de la table GROUPE mais en remplaçant les ID se trouvant dans les colonnes RESPONSABLE et RESPONSABLE_ADJOINT par les NOMs des agents correspondant et ceci en une seule et unique requête.

    Quelqu'un sait t'il faire ?

    D'avance merci
    Alex01

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Faut des jointures.. C'est la base des Bases de donnée
    Fait un tour dans les tutoriels oracle
    http://oracle.developpez.com/guide/developpement/sql/
    Section SELECT
    3.1 Selection multi table

    Voici le code (j'ai mis des jointures externes au cas ou l'un des responsables n'est pas renseigné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id_groupe, groupe, responsable, r.nom || ' ' || r.prenom,
    	responsable_adjoint, ra.nom || ' ' || ra.prenom
    FROM GROUPE g, AGENT r, AGENT ra
    WHERE g.responsable = r.id_agent (+)
    AND g.responsable_adjoint = ra.id_agent (+)

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Honte à moi !

    Ton code fonctionne à merveille.
    Je te remercie

    Cordialement,
    Alex01

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Bonjour,

    Petite question supplémentaire :
    Si je souhaite afficher, en plus, le nombre d'agents par groupe ?

    Ma méthode est la suivante mais je ne sias pas si elle est propre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE OR REPLACE VIEW DETAILGROUPE
      (ID_GROUPE, GROUPE, DESCRIPTIF, RESPONSABLE, RESPONSABLE_ADJOINT)
    AS
      SELECT g.ID_GROUPE, g.GROUPE, g.DESCRIPTIF, r.NOM || ' ' || r.PRENOM, ra.NOM || ' ' || ra.PRENOM
      FROM GROUPE g, AGENT r, AGENT ra
      WHERE g.RESPONSABLE = r.ID_AGENT (+)
      AND g.RESPONSABLE_ADJOINT = ra.ID_AGENT (+)
     
    SELECT COUNT(r.ID_AGENT), d.GROUPE, d.ID_GROUPE, d.RESPONSABLE, d.RESPONSABLE_ADJOINT, d.DESCRIPTIF
    FROM DETAILGROUPE d, AGENT r
    WHERE d.ID_GROUPE = r.ID_GROUPE
    GROUP BY d.GROUPE, d.ID_GROUPE, d.RESPONSABLE, d.RESPONSABLE_ADJOINT, d.DESCRIPTIF
    Pour rappel mes tables sont les suivantes :
    J'ai deux tables :
    GROUPE
    - ID_GROUPE (Primary key)
    - GROUPE (nom du groupe)
    - RESPONSABLE (nom du responsable) --> foreign Key de ID_AGENT
    - RESPONSABLE_ADJOINT (nom du responsable Adj) --> foreign key de ID_AGENT

    AGENT
    - ID_AGENT (primary key)
    - NOM (nom de l'agent)
    - PRENOM (prenom de l'agent)

    Merci de m'indiquer s'il y a mieux ou si c'est OK.

    D'avance merci,
    Alex01

Discussions similaires

  1. Problème requete SQL
    Par tonyskn dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/11/2004, 20h37
  2. problème requete sql
    Par Fred- dans le forum ASP
    Réponses: 2
    Dernier message: 13/06/2004, 02h20
  3. Problème réplication SQL Server et SQL Server CE (RDA)
    Par didix11 dans le forum Réplications
    Réponses: 2
    Dernier message: 15/04/2004, 11h10
  4. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  5. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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