Requette imbriqué

saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 novembre 2011 - 23 mai 2011 à 15:04
saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 novembre 2011 - 23 mai 2011 à 16:26
bonjour,
j'ai deux requettes :la premiere consiste à determiner le bloc et le nombre des séances que lui est affectées pendant un jour donné pour une filiere donnée ...
1)sql="Select bloc_, count(bloc_) from Enseignements where jour_=1 and CycleAnnée_=" & ComboBox2.SelectedItem & " and filière_='" & ComboBox1.SelectedItem & "' and Groupe=" & ListBox1.SelectedItem & " GROUP BY (bloc_))"
la deuxième calcule la valeur maximale de nombre des seances affectés à un bloc (pour un jour donné...)
2) select Max(NB)from(select count(bloc_)as NB from Enseignements where jour_=1 and CycleAnnée_=" & ComboBox2.SelectedItem & " and filière_='" & ComboBox1.SelectedItem & "' and Groupe=" & ListBox1.SelectedItem & " GROUP BY (bloc_))"
mon but c'est d'afficher le bloc qui a cette valeur maximale de nombre de séances
j'ai essayé de les faire imbriqué mais j'arrive pas à mon but j'ai toujours un message d'erreur qui dit que ma requette renvoie au plus une valeur.
s'il vous plait est ce que quelqu'un peut m'aider
merci

5 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
23 mai 2011 à 15:38
Salut,

Tu veux trouver, pour un jour donné et une filière donnée, le bloc qui a/a eu le plus de séances programmées, c'est ça ?
Tu cherches à le faire en une seule requête ?
Quel SGBD utilises-tu ?
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
23 mai 2011 à 15:39
Oups, dernière question idiote, on est dans la section Access, désolé :p
0
saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 novembre 2011
23 mai 2011 à 15:46
salut,
je travaille avec sqlserver 2005 sur une base de données access
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
23 mai 2011 à 15:57
Et ben niveau ânerie j'aurais fait fort sur ce sujet ^^
Donc tu codes du VBA et ton SGBD est SQL Server.

De toute façon l'idée reste la même :
- tu crées ta requête GROUP BY qui fait les totaux de séances,
- tu l'ORDER BY ce total de manière DESCendante,
- tu fais un TOP 1 pour n'avoir que le premier, qui sera celui qui en a le plus (ou le premier enregistrement qui en compte le plus, si plusieurs ont un nombre identique de séances).

ça donnerait un truc du genre :
SELECT TOP 1 bloc, COUNT(*)
  FROM Enseignements
 WHERE date = madate
   AND filiere = mafiliere
 GROUP BY bloc
 ORDER BY COUNT(*) DESC;


En tout cas c'est la première soluce qui me vient à l'esprit.
0

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

Posez votre question
saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 novembre 2011
23 mai 2011 à 16:26
merci ça marche , il suffit d'extraire le nom du bloc du resultat fournit par ta requette proposé
merciiiiiiiii
0
Rejoignez-nous