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

Langage SQL Discussion :

[Exercice] Aide sur requête


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 30
    Points : 25
    Points
    25
    Par défaut [Exercice] Aide sur requête
    Bonjour je suis débutant en SQL et malgré les nombreux tutos je suis bloqués sur quelques requêtes basiques:

    Voila mon schéma de la base
    Service(CodeS, NomS,Directeur)
    Salle(CodeS,NumSalle, Surveillant)
    Employe(NumE, NomE, Adr, Tel)
    Docteur(NumD, Spé)
    Infirmier(NumI, CodeS,Salaire)
    Malade(NumM, NomM, Mutuelle)
    Hospitalisation(NumM,CodeS, NumSalle,LIt, diagnostic)
    Soigne(NumD,NumM)
    Je précise élément souligné = clé primaire
    directeur = docteur
    surveillante= infirmière
    employe = docteur + infirmière
    1 infirmière est affecté à un seul service


    Sur toutes les requêtes, je n'ai pas réussi à en faire 3:

    1)donner noms des médecins intervenant dans 3 services différents
    2) donner pour chaque malade le(s) médecin(s) qui le(s) soigne(nt)
    3) quels sont les malades qui ont été soignés par tous les médecins

    Voila Merci d'avance pour l'aide, j'aimerais tant avancé sur le projet
    Merci

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    J'imagine que vous n'avez pas de SGBD particulier et que vous faîtes des exos sur papier ?

    Quoi qu'il en soit je vous propose un début de réponse :
    - question 2/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT   M.*,
             D.*
    FROM     MALADE M
             LEFT OUTER JOIN SOIGNE S
               ON M.NUMM = S.NUMM
             LEFT OUTER JOIN DOCTEUR D
               ON D.NUMD = S.NUMD
    ORDER BY M.NUMM

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 91
    Points : 66
    Points
    66
    Par défaut
    Pour la première je dirais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select Directeur from Service 
    GROUP BY Directeur
    HAVING count(Directeur)>=3;
    je vais regarder ce que me dit la troisieme....

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Bartuk >> votre requête ne répond pas à la 1ère question

    Par contre, si dans la table service tous les noms sont différents et que directeur est la clé étrangère de la table Docteur alors je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT S.NOMS
    FROM   SERVICE S
           INNER JOIN SERVICE S2
             ON S2.DIRECTEUR = S.DIRECTEUR
           INNER JOIN SERVICE S3
             ON S3.DIRECTEUR = S.DIRECTEUR
    WHERE  S.CODES <> S2.CODES
           AND S.CODES <> S3.CODES
           AND S2.CODES <> S3.CODES

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 91
    Points : 66
    Points
    66
    Par défaut
    Magnus, pourquoi faire un "select S.NomS" alors qu'on demande le nom des médecins et non des services...
    Pourquoi la requête que j'ai proposé ne fonctionne t elle pas?
    Si dans la liste des directeurs associés à un service on retrouve le même plus de 3 fois c'est qu'il appartient à ce que l'on recherche non?
    Ce qu'il manque par contre c'est une jointure sur la table employé pour avoir le nom du médecin.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 99
    Points : 110
    Points
    110
    Par défaut
    Je pense que Magnus voulais mettre s.directeur et non s.noms.

    Sinon, je pense que la requête de Bartuk est tout à fait correcte....

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par Bartuk
    Pourquoi la requête que j'ai proposé ne fonctionne t elle pas?
    Autant pour moi : j'ai probablement dit une ânerie liée au fait que j'assimile le terme "Directeur" a un libellé - et qui de ce fait n'est pas nécessairement unique ; d'où ma remarque - et non à une clé étrangère.

    Or d'après les données initiales, vous avez raison

Discussions similaires

  1. [SQL] Aide sur requête PHP - SQL
    Par jrnb58 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/09/2006, 12h56
  2. Aide sur requêtes
    Par Virgile59 dans le forum Access
    Réponses: 6
    Dernier message: 08/02/2006, 16h05
  3. aide sur requête sql
    Par Vodkha dans le forum Langage SQL
    Réponses: 9
    Dernier message: 30/08/2005, 17h53
  4. Aide sur Requête SQL
    Par devdev dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/05/2005, 12h33
  5. Besoin d'aide sur requête croisée
    Par keawee dans le forum Access
    Réponses: 7
    Dernier message: 18/11/2004, 09h46

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