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 :

requête sql complexe


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut requête sql complexe
    Bonjour,

    j'ai 3tables. entreprise, employe et adresse.
    entreprise 0,1 --- 0,N adresse
    employe 0,1 --- 0,N adresse

    je dois créer une requête select * sur adresse pour recupérer l'adresse d'une entreprise ou d'un employé selon les valeurs des paramètres de code_emp et code_ent. (en gros l'une des 2 est égale à 0 à chaque fois)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT *
    FROM ADRESSE,EMPLOYE,ENTREPRISE
    WHERE 
    EMPLOYE.CODE_ADR=ADRESSE.CODE_ADR AND 
    ENTREPRISE.CODE_ADR=ADRESSE.CODE_ADR AND
    ENTREPRISE.CODE_ENT=2
    voilà ou j'en suis...

  2. #2
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    Je n'ai pas trop compris code_ent et code_emp. Mais bon voilà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM ADRESSE
    LEFT JOIN EMPLOYE 
    ON EMPLOYE.CODE_ADR=ADRESSE.CODE_ADR AND EMPLOYE.CODE_EMP=2
    LEFT JOIN  ENTREPRISE 
    ON ENTREPRISE.CODE_ADR=ADRESSE.CODE_ADR AND ENTREPRISE.CODE_ENT=2

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    merci de ta solution mais ce n'est pas cela que je souhaite, la toutes les lignes adresses sont récupérés et moi il y en a qu'une qui doit etre récupérée.

    celle où code_emp ou code_ent (clé primaire employé et entreprise) est en parametre.

    select * from adresse,entreprise where ENTREPRISE.CODE_ADR=ADRESSE.CODE_ADR AND ENTREPRISE.CODE_ENT= PARAMETRE1

    OU

    select * from adresse,employe where EMPLOYE.CODE_ADR=ADRESSE.CODE_ADR AND EMPLOYE.CODE_EMP= PARAMETRE2

  4. #4
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut
    Essaie ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT code_adress
      FROM adresse, entreprise
     WHERE entreprise.code_adr = adresse.code_adr
       AND entreprise.code_ent = :parametre1
    UNION
    SELECT code_adress
      FROM adresse, employe
     WHERE employe.code_adr = adresse.code_adr 
     AND employe.code_emp = :parametre2
    ou plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT code_adress
      FROM adresse
     WHERE adresse.code_ent = :parametre1
    UNION
    SELECT code_adress
      FROM adresse
     WHERE adresse.code_emp = :parametre2

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    salut,

    je te rejoins sur ta première solution que j'ai trouvé aussi, la 2ème par contre est fausse.

    merci de votre aide.

  6. #6
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Citation Envoyé par julien_d
    salut,

    je te rejoins sur ta première solution que j'ai trouvé aussi, la 2ème par contre est fausse.
    Salut,

    Je ne comprends pas , normalement code_ent et code_emp des clés étrangères dans ta table adresse??????

    Normalement ca devrai marcher la deuxième solution

  7. #7
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par salim11
    Salut,

    Je ne comprends pas , normalement code_ent et code_emp des clés étrangères dans ta table adresse??????

    Normalement ca devrai marcher la deuxième solution
    C'est la clé étrangère d'ADRESSE qui est dans la table ENT et EMP.
    entreprise 0,1 --- 0,N adresse
    employe 0,1 --- 0,N adresse

  8. #8
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,

    Oui t'as raison

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

Discussions similaires

  1. Requête sql complexe
    Par c-ve dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/05/2007, 08h48
  2. Requète SQL complexe
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 01/08/2006, 10h10
  3. Requête sql complexe
    Par new_wave dans le forum Langage SQL
    Réponses: 1
    Dernier message: 03/01/2006, 11h55
  4. Requête SQL Complexe
    Par zut94 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/11/2005, 20h53
  5. Requête SQL complexe. Comment faire ....
    Par BilTCD dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/11/2004, 16h18

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