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 :

Créer requête complexe


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2013
    Messages : 71
    Par défaut Créer requête complexe
    Bonjour, je voudrais executer une requete que je trouve un peu complexe :
    voilà les tables

    region(idRegion,NomRegion)
    Academie (idAcademie, nomAcademie, #Id_region)
    Lycee(id_lycee, nomLycee, ville, #idAcademie) Professeur (idProf,nom,prenom,#IdLycee)
    Demande (idDemande, dateDEmande, #IdProfesseur)
    Detaille_demande(#idDemande,#IdLycee,numOrdre)

    chaque professeur peut faire des demandes de mutation à d'autres lycée

    ce que je dois faire : Créer une procedure qui Affiche tous les professeur qui demandent des lycées qui se trouve à l’extérieure de leur région.

    j'essaie cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select dm.id_prof,dtm.id_lycee from demande dm join detaille_demande dtm on (dm.id_demande=dtm.id_demande) join professeur pr on pr.id_prof = dm.id_prof where dtm.id_lycee <> (select r.id_region from region r join academie ac on ac.id_region=r.id_region join lycee l on l.id_academie=ac.id_academie where l.id_lycee=dtm.id_lycee)
    mais je crois pas que c'est la bonne requete, Merci de m'aider.

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 236
    Par défaut
    Effectivement, ce n'est pas correct.

    Essaie déjà une première requête un peu différente de ce que tu cherches à faire : Afficher TOUTES les demandes de mutation, avec le nom du prof, son lycée actuel, son académie actuelle, le lycée demandé, et l'académie du lycée en question.
    C'est facile, ça devrait te prendre 10 minutes maximum.

    Ensuite, à partir de cette requête simple, tu devrais pouvoir résoudre ton problème initial en moins de 10 minutes.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2013
    Messages : 71
    Par défaut
    j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select dm.id_prof,dtm.id_lycee,r.nom_region from demande dm join detaille_demande dtm on dm.id_demande = dtm.id_demande join lycee l on l.id_lycee=dtm.id_lycee join academie ac on ac.id_academie=l.id_academie join region r on r.id_region = ac.id_region where dm.id_prof not in (select p.id_prof from region r2 join academie ac on r2.id_region = ac.id_region join lycee l on l.id_academie=ac.id_academie join professeur p on p.id_lycee=l.id_lycee where r.id_region = r2.id_region)
    il semble macher, qu'est ce que vous en pensez ?

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 236
    Par défaut
    La reuete que tu as faite semble correcte, elle va fonctionner ... mais elle ne va pas donner le résultat que tu souhaites.

    La solution que j'avais en tête était BEAUCOUP plus simple.

    Présente déjà une requête qui affiche toutes les demandes de mutation, avec nom du prof, lycée d'origine, académie d'origine, lycée demandé, académie demandée.

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2013
    Messages : 71
    Par défaut
    oui je vois très bien ce que vous voulez dire et je l'ai déjà fais, j'ai testé tout les cas avec la requête et ça marche , maintenant j'aimerai créer une procédure qui permet d'afficher tous ces professeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    create or replace procedure affichage is
    cursor crs is select dm.id_prof,dtm.id_lycee,r.nom_region from demande dm join detaille_demande dtm on dm.id_demande = dtm.id_demande join lycee l on l.id_lycee=dtm.id_lycee join academie ac on ac.id_academie=l.id_academie join region r on r.id_region = ac.id_region where dm.id_prof not in (select p.id_prof from region r2 join academie ac on r2.id_region = ac.id_region join lycee l on l.id_academie=ac.id_academie join professeur p on p.id_lycee=l.id_lycee where r.id_region = r2.id_region);
    begin
    for i in crs loop
    dbms_output.put_line(i.id_prof);
    end loop;
    end;
    1 * est ce que dans DBMS je dois ecrire i.dm.id_prof ou bien i.id_prof
    2 * même si je fais set Serveroutput on , lorsque j'appelle la procédure dans un code plSQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    set serveroutput on;
    declare
    begin
    affichage;
    end;
    resultat : bloc anonyme terminé.

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 236
    Par défaut
    Si tu penses que ta requête est bonne, et si tu arrives à convaincre ton prof qu'elle est bonne, alors tout va bien.

    Bonne suite.

Discussions similaires

  1. Créer une requête complexe
    Par F2000 dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/03/2009, 10h07
  2. Requête complexe
    Par Yali dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2005, 09h19
  3. 3 tables avec requête complexe
    Par yamino dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/03/2004, 19h50
  4. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  5. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50

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