Requête avec un min() [ SQL ] - Programmation
Marsh Posté le 04-02-2002 à 14:19:33
Tu as essayer cela :
"SELECT MIN(numero) as mini,nom,prenom FROM table";
Marsh Posté le 04-02-2002 à 15:20:27
SELECT numero,nom,prenom FROM table
WHERE numero=(SELECT MIN(numero) FROM table)
C'est bon !
Quand tu fais :
SELECT MIN(numero),nom,prenom FROM table;
Le SGBD ne sait pas quoi faire, il lui faut une règle d'agrégation pour les champs nom et prénom.
Par exemple :
SELECT MIN(numero),nom,prenom FROM table GROUP BY nom, prenom;
Mais ce n'est pas ce que tu veux.
Toi, tu veux :
1- Le plus petit numéro présent dans la table
2- Pour le numéro trouvé au dessus, le ou les nom(s) et prénom(s) associé(s). (Il peut y en avoir plusieurs)
C'est donc bien 2 requêtes différentes, et ta solution est la bonne.
Marsh Posté le 04-02-2002 à 15:32:09
ok, c'est bien ce que je pensais mais je voyais pas pourquoi il arrivait pas à me sortir ça mais c'est vrai que c'est bien 2 requêtes
Marsh Posté le 04-02-2002 à 14:18:04
SELECT MIN(numero),nom,prenom FROM table;
Pourquoi cette requête est refusée ? Je sais que c'est à cause de min mais je me rappelle plus pourquoi c'est pas bien
J'ai donc fais ça :
SELECT numero,nom,prenom FROM table
WHERE numero=(SELECT MIN(numero) FROM table)
;
Est-ce correct pour les "purriste" ou fallait-il faire autrement ?