Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
699 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Aide requête SQL Access 2010

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Aide requête SQL Access 2010

n°2076016
mar31
Posté le 15-05-2011 à 15:11:00  profilanswer
 

Bonjour,
J'ai besoin d'aide pour rédiger une requête en SQL sous microsoft access 2010.
Voici mon cahier des charges ainsi que le modèle logique de données.
 
http://img21.imageshack.us/img21/8601/sujet2010.jpg
 
Je dois traiter la requête suivante : Donner pour chaque agence proposant au minimum 10 hôtels dans la région Midi-Pyrénées, son nom et le nombre d'hôtels précis proposés dans cette même région.
 
Voici ce que j'ai fait:
SELECT nomag, count(*)
FROM hotel, agence, affilier
WHERE hotel.codeh=affilier.codeh AND agence.codeag=affilier.codeag AND régionh="midi-pyrénées"
GROUP BY hotel.codeh, nomag
HAVING count(*)>=10;
 
Mais cela ne marche pas; il n'y a pas de message d'erreur mais il ne me trouve aucune agence alors que j'en ai créé le nombre suffisant pour que cela puisse marcher.
Merci de m'aider

mood
Publicité
Posté le 15-05-2011 à 15:11:00  profilanswer
 

n°2076119
olivthill
Posté le 16-05-2011 à 10:44:24  profilanswer
 

Normalement il devrait y avoir un message d'erreur car hotel.codeh est une colonne du group by, et il faudrait donc que ce soit une colonne du select.
 
A part ça, ca devrait marcher, sauf, éventuellement, si les champs des jointures ont des données nulles, auquel cas, il faudrait faire des jointures "externes".

n°2076234
mar31
Posté le 16-05-2011 à 13:25:54  profilanswer
 

Oui merci; en effet il m'a suffit dans le goup by de ne mettre que nomag. Cependant, comment faire si je veux regrouper par codeag par exemple (au cas où il y aurait deux agences ayant le même nom), mais que je ne veux afficher que le nomag (dans le select)?

n°2076240
olivthill
Posté le 16-05-2011 à 13:33:35  profilanswer
 

Alors, il faudrait utiliser deux requêtes séparées avec un peu de code classique (C, PHP, etc) entre les deux, ou bien faire une requête et une sous-requête si la base de données le permet, du genre

select colonneC
 from
 (select colonneA, colonneB, colonneC, count(*)
   from ... group by colonneA, colonneB, colonneC)

Ou du genre

select colonneC
 in (select colonneA, colonneB, colonneC, count(*)
   from ... group by colonneA, colonneB, colonneC) from dual

(Je ne connais pas par coeur la syntaxe précise des sous-requêtes parce que je trouve personnellement qu'il est plus simple de travailler avec deux requêtes séparées, ou même une seule requête que l'on filtre ensuite avec code classique).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Aide requête SQL Access 2010

 

Sujets relatifs
[Access] Conditionner les données d'une liste en choisissant un chaVBA Access Excel
Migrer Access vers MySQL... quelle galère ![AIDE] XSD, XSL, fichier config...
Envoie formulaire Access vers WordAide ! Récupérer le langage binaire d'un fichier.
aide choix cms svp urgent!Génération SQL
[Php/Sql] Problème Order ByRequête
Plus de sujets relatifs à : [SQL] Aide requête SQL Access 2010


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR