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 :

Problème requête SQL


Sujet :

Langage SQL

Vue hybride

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Par défaut Problème requête SQL
    Bonsoir,

    J'ai une base de données dont le schéma relationnel est le suivant :
     Chercheur [ CodeCh, NomCh, CodeEq* ]
     Laboratoire [ CodeLabo, Type, NomLabo, URL, CodeDir* ]
     Equipe [ CodeEq, NomEq, CodeResp*, CodeLabo* ]
     Theme [ CodeTh, Libelle ]
     Definir [ CodeEq*, CodeTh* ]
     Travailler [ CodeCh*, CodeTh* ]
    Sachant que CodeDir et Code Resp font référence à la clé primaire CodeCh.

    Je souhaiterais résoudre la requête :
    "Nombre d’équipes ayant au moins cinq chercheurs"

    Voilà un extrait de ce que j'ai pu trouver mais ceci ne marche pas, quelqu'un aurait une solution à me proposer ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT count(*)
    FROM Equipe
    WHERE CodeEq=(SELECT CodeEq
    FROM Chercheur, Equipe
    WHERE Chercheur.CodeEq=Equipe.CodeEq
    GROUP BY (NomEq)
    HAVING COUNT(*)>5);

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Ca devrait fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Chercheur.CodeEq, count(*)
    FROM Chercheur, Equipe
    WHERE Chercheur.CodeEq=Equipe.CodeEq
    GROUP BY (Chercheur.CodeEq)
    HAVING COUNT(*)>5

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Et avec la syntaxe normalisée depuis 1992 pour les jointures, c'est encore mieux !

    Mais besoin n'est pas de lister les équipes mais d'avoir :
    "Nombre d’équipes ayant au moins cinq chercheurs"
    Et comme le code équipe figure dans la table des chercheurs, inutile de faire la jointure avec la table des équipes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT COUNT(*) AS nb_equipes
    FROM (
        SELECT CodeEq
        FROM Chercheur
        GROUP BY CodeEq
        HAVING COUNT(*) > 4
    ) tmp
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Par défaut
    Merci beaucoup pour vos infos mais je voudrai éalement un tout dernier renseignement.

    Je souhaiterai également connaitre les Thèmes de recherche des directeurs d’équipe en indiquant le nom du chercheur, le nom de l’équipe et le nom des thèmes.
    Mais je ne sais pas du tout comment m'y prendre

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Il faut, là aussi, faire des jointures entre les tables et récupérer les colonnes dont tu as besoin.

    Thèmes de recherche des directeurs d’équipe en indiquant le nom du chercheur, le nom de l’équipe et le nom des thèmes.
    Je pense que tu veux plutôt parler des responsables d'équipe ?

    Ceci devrait répondre au besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT c.NomCh AS Nom_Chercheur, 
        e.NomEq AS Nom_Equipe, 
        th.Libelle AS Theme
    FROM Theme AS th
    INNER JOIN Travailler AS tr ON tr.CodeTh = th.CodeTh
        INNER JOIN Chercheur AS c ON c.CodeCh = tr.CodeCh
            INNER JOIN Equipe As e ON e.CodeResp = c.CodeCh
    Essaie de faire la prochaine toi-même à partir de ces exemples.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Par défaut
    Merci mais si je vous demande c'est que justement, on me demande de ne pas le faire avec des alias mais en requete simple !

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

Discussions similaires

  1. Problème requête SQL
    Par mandaillou dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/10/2005, 11h37
  2. Problème requête SQL dans page ASP
    Par rocs dans le forum ASP
    Réponses: 14
    Dernier message: 26/07/2005, 15h38
  3. problème requête sql
    Par psychoBob dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/07/2005, 17h50
  4. problème requête sql
    Par perfectdams dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/06/2005, 18h09
  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