Rechercher : dans
Par :

Faire une sous requete access

Dernière réponse le 20 avr 2008 à 15:48:09 ptitbogosse, le 20 avr 2008 à 11:39:06 
 Signaler ce message aux modérateurs

Bonjour,

voila je voudrais créer une sous requête sous access qui affiche les étudiants qui on une moyenne supérieure à la moyenne des étudiants.

voila ma requête:
SELECT AVG (Moyenne)
FROM ELEVE
WHERE(SELECT [NuméroElève], Moyenne
FROM ELEVE
GROUP BY [NuméroElève], Moyenne)
;

et ma table ELEVE: Numéro élève, nom, prénom, moyenne

lorsque j'exécute access me répondu que j'ai écris une sous requête pouvant renvoyer plus d'un champs sans utiliser le mot réservé exist dans la clause from de la requête principale.

si quelqu'un pouvait me dire ou se trouve mon erreur je lui en serais reconnaissant

merci d'avance

1

Baek, le 20 avr 2008 à 11:57:28

Bonjour a toi ptitbogosse.

juste un truc, pas sur que ça marche :

SELECT Numero_eleve, AVG (moyenne) as MOY
FROM ELEVE
WHERE Numéro_eleve in
( SELECT Numéro_eleve FROM ELEVE WHERE moyenne > MOY )
GROUP BY [NuméroElève], Moyenne)

si ça peut te servir, je suis au boulo je peux pas terster dsl.

+

Répondre à Baek

2

ptitbogosse, le 20 avr 2008 à 12:20:21

Il me dit : vous avez essayé d'executer une requete ne comprenant pas l'expression specifié " numeroeleve" comme une partie de la fonction d'agrégat

SELECT Numeroeleve, AVG (moyenne) AS MOY
FROM ELEVE
WHERE Numeroeleve in
(SELECT Numeroeleve
FROM ELEVE
WHERE (moyenne) > MOY
GROUP BY Numeroeleve, moyenne)
;

Répondre à ptitbogosse

3

ptitbogosse, le 20 avr 2008 à 13:01:30

Et en changeant la parenthèse (je me suis trompé) de place


SELECT Numeroeleve, AVG (moyenne) AS MOY
FROM ELEVE
WHERE Numeroeleve in
(SELECT Numeroeleve
FROM ELEVE
WHERE (moyenne) > MOY)
GROUP BY Numeroeleve, moyenne
;

il me demande d'entrer une valeur pour MOY

merci quand meme de m'avoir aidé, j'ai toujours pas la solution mais j'avance

Répondre à ptitbogosse

4

Baek, le 20 avr 2008 à 13:51:45

Autre test :



SELECT Numeroeleve, moyenne
FROM ELEVE
WHERE Numeroeleve in
(SELECT Numeroeleve
FROM ELEVE
WHERE (moyenne) > (
SELECT AVG (moyenne) FROM ELEVE )
GROUP BY Numeroeleve, moyenne
;

j'aime bien les requetes imbriqués, j'espère que tu pourras encore avancer..

++

Répondre à Baek

5

 ptitbogosse, le 20 avr 2008 à 15:48:09

Merci de ton aide ca marche

bon week end a+

Répondre à ptitbogosse
Collection CommentÇaMarche.net