Bonsoir à tous, voilà je suis dans la réalisation d'un projet synthèse avec les Système d'Information sous Access. Le soucis c'est que deux requêtes sur le grand nombre que nous avons possèdent des éléments que je n'arrive pas à bien utiliser sachant qu'en général j'utilise SQL et non pas Access...
Voici les deux requêtes :
R32 : Quelles salles de Toulouse (nom) offrent l’activité « Pilates » avec une capacité de plus de 30 places et l’activité « Spinning » avec plus de 25 places ?
R47 : Quel(s) membre(s) cumule(nt) le plus de changement d’abonnement (nom, nombre de changement) ?
Voici mon schéma relationnel :
SALLE(NumS, NomS, AdresseS, CodePostalS, VilleS)
MEMBRE(NumM, NomM, PrenomM, AdresseM, VilleM, DateDeNaissanceM, #NumS)
ACTIVITE(CodeAct, LibelleAct, DescriptifAct, #CodeT)
TYPE_ACTIVITE(CodeT, LibelleT)
TYPE_ABONNEMENT(CodeAbo, LibelleAbo, DescriptifAbo, TarifAbo, DureeAbo)
Offrir(#NumS, #CodeAct, Capacite)
Abonner(#NumM, #CodeAbo, DateDebut, DateFin)
Acceder(#CodeT, #CodeAbo)
J'ai tenté de réaliser ma requête n°32 et cela ne retourne aucune erreur mais une table vide alors qu'il y'a bien en théorie un élément qui devrait passer (deux enregistrements avec la même salle qui offre les deux activités avec les deux conditions respectées)... Qu'est ce qui est faux?
Pour la requête 47 : J'ai essayé de réaliser quelque chose en fixant le maximum de codeAbo pour une même personne mais là je vous cache pas que je n'y crois pas une seconde... Auriez vous une petite solution pour cette avant avant avant dernière requête?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT s.NumS, NomS FROM SALLE s, OFFRIR o, ACTIVITE a WHERE s.NumS IN (SELECT s.NumS FROM SALLE s WHERE Capacite > 30 AND LibelleAct = "Pilates") AND s.NumS IN (SELECT s.NumS FROM SALLE s WHERE Capacite >25 AND LibelleAct = "Spinning") AND s.NumS = o.NumS AND a.CodeAct = o.CodeAct;![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT m.NomM, MAX(ta.CodeAbo) FROM MEMBRE m, TYPE_ABONNEMENT ta, ABONNER a WHERE ta.CodeAbo = a.CodeAbo AND m.NumM = a.NumM GROUP BY m.Nom HAVING COUNT(DISTINCT ta.CodeAbo) ;
En tout cas merci pour votre aide prochaine !!
Cordialement,
A. Butheau
Partager