SQL aide svp

Chloé -  
 Chloé -
Bonjour,

Je viens vous demander un peu d'aide svp pour une requete que j'ai à réaliser dans le cadre d'un exercice

voilà le Schéma :

COURS(NomCours, Enseignant, Niveau)
INSCRIT(Nocarte, Nom, Age, Sexe)
PLANNING(NomCours, Jour, Lieu, Heure)
PARTICIPATION(Nocarte, NomCours)

la question :

Trouver les cours qui sont plus nombreux que le cours AEROBIC

et là je sais pas trop quoi faire...donc si vous pouviez me mettre sur la voie...

4 réponses

  1. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    Bonjour,
    ça fait un petit moment que je n'ai pas refait de SQL mais je pense que tu devrais faire un truc comme ça :
    D'abord tu sélectionnes tous les nomcours et Nocarte et tu regroupes par nomcours.
    Puis tu fais un having dans lequel tu vérifies que le nombre de Nocarte est bien supérieur à (requête comptant le nombre de participant du cours AEROBIC)
    0
    1. Chloé
       
      Merci de prendre le temps de m'aider...ça devrait faire un truc comme ça ? :

      select NomCours,Nocarte,count(Nocarte)as Nbr 
      from PARTICIPATION 
      Group by NomCours,Nocarte 
      having count(Nocarte)>(select count(Nocarte) from PARTICIPATION Having NomCours='Aerobic') 
      


      Mais c'est pas bon ... :-s
      Ca me dit erreur
      0
  2. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    J'aurais mis un truc dans ce genre là :

    select NomCours,Nocarte
    from PARTICIPATION 
    Group by NomCours
    having count(Nocarte)>(select count(Nocarte) from PARTICIPATION where Nomcours = 'Aerobic') 


    par contre je n'ai pas de logiciel pour pouvoir tester donc : ça te dit quoi comme erreur ?
    0
    1. Chloé
       
      ERREUR : La colonne 'PARTICIPATION.Nocarte' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
      0
    2. Arya Dröttningu Messages postés 650 Statut Membre 157
       
      Et si tu essayes ça :
      select NomCours
      from PARTICIPATION 
      Group by NomCours
      having count(Nocarte)>(select count(Nocarte) from PARTICIPATION where Nomcours = 'Aerobic') 


      Apparemment ce qu'il y a dans le select doit être dans le group by.....
      0
  3. Siluni
     
    SELECT NomCours, COUNT(*) AS participant  
    FROM participation    
    GROUP BY participation.NomCours  
    HAVING (participant > (SELECT COUNT(*) FROM participation WHERE NomCours = 'Aerobic'))  
    ORDER BY participant DESC;  
    


    Le mieu reste comme meme de faire un define, c'est plus propre et moin lourd en traitement
    0
  4. Chloé
     
    Merci beaucoup pour ton aide...c'est sympa j'ai compris maintenant
    0