Requete sql

miniJulie -  
 miniJulie -
Bonjour, A tous

j'ai un exercice très long et j'ai presque tout trouver sauf une derniere requete...

si vous pouviez m'aider :


Trouver les noms et numéros de carte des inscrits qui participent à (au moins) un cours auquel participe Bonnard


schéma :

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


merci d'avance pour votre aide...cette question m'aura fait transpiré

37 réponses

Melooo Messages postés 1476 Statut Membre 84
 
Il me semble que quand on utilises un Having on es censé utiliser un group by donc fais un truc comme ca :
GROUP BY NoCarte ASC 
HAVING (((COUNT(I.NoCarte)> 1))); 

0
Baboun
 
SELECT I.NoCarte, Nom, COUNT(I.NoCarte)
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
GROUP BY I.NoCarte, Nom
HAVING (((SUM(I.NoCarte)> 1)));
0
miniJulie
 
non non lol

j'espere que je vous embête pas trop...faut peut-être une sous-requête non ? car jai fait ça question précédente :

select Nom,Age
from INSCRIT
Where Age>( select Age
from Inscrit
where Nom='Bonnard')
0
Melooo Messages postés 1476 Statut Membre 84
 
Non pas besoin de sous requête, quelle est la derniere requête que tu as testée ?
As tu essayé avec le group by ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
miniJulie
 
La derniere requete est avec le GROUP BY...et ça ne marche pas non plus..apparement le pb vient du SUM
0
Melooo Messages postés 1476 Statut Membre 84
 
et si tu remplace le SUM par un COUNT ??
0
Baboun
 
ben oui faut remplacer le SUM du HAVING par un COUNT mdrrrrr
0
Melooo Messages postés 1476 Statut Membre 84
 
On va y arriver lol
0
miniJulie
 
SELECT I.NoCarte, Nom, COUNT(I.NoCarte)
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
GROUP BY I.NoCarte, Nom
HAVING (((COUNT(I.NoCarte)> 1)))


Là je n'ai aucun problème mais jpense pas que ce soit la réponse...car ça ne me trouve aucune personne...
0
Melooo Messages postés 1476 Statut Membre 84
 
tu es sur d'avoir au moins un résultat correspondant à ta requête ???
Et essayes de virer toutes ces parenthèses dans le having
0
miniJulie
 
Oui oui j'ai regardé
0
Baboun
 
Si elle est bonne la requete! Maintenant a toi d'alimenter ta BDD pour que cette requete fonctionne avec plusieurs exemple....
0
miniJulie
 
Vous savez quoi j'ai peut-etre mal regardé...jpense que c'est bon en fait...

maintenant si vous pouviez me répondre à une deuxieme petite question...je dois faire cette question avec le JOIN et l'agregation...


Trouver les inscrits au cours de NATATION I et de NATATION II


j'ai

select distinct Inscrit.*,Cours.NomCours
from INSCRIT,PARTICIPATION,COURS
where Inscrit.Nocarte=Participation.Nocarte
and Participation.NomCours=Cours.NomCours
and Cours.NomCours='NatationI'or Cours.NomCours='NatationII'

et

select Inscrit.*,Cours.NomCours
from (INSCRIT join PARTICIPATION on Inscrit.Nocarte=Participation.Nocarte)
join Cours on Participation.NomCours=Cours.NomCours
where Cours.NomCours='NatationI'or Cours.NomCours='NatationII'




les deux marchent mais ne donnent pas le même résultat pk ?
0
Melooo Messages postés 1476 Statut Membre 84
 
Le distinct non ?
0
miniJulie
 
non justement le 1er me donne plus de réponses...
0
Melooo Messages postés 1476 Statut Membre 84
 
j' ai jamais fais de requête avec les "join" mais rajouter inner devant nan ?
0
miniJulie
 
non je sais pas...c'est pas grave tu m'as déjà beaucoup aidé...c'est vraiment très gentil de ta part...j'espere elle sera juste maintenant :-p
0