Formulation d'un requête

Résolu/Fermé
OUROBANGNA Messages postés 69 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 17 mars 2014 - 28 août 2011 à 17:44
OUROBANGNA Messages postés 69 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 17 mars 2014 - 28 août 2011 à 19:21
Bonjour chers internautes.
j'ai une table vehicule (immatriculation, etat, capacité, consommation).

En fait je voudrais sélectionner le véhicule (immatriculation et consommation) dont la capacité est supérieure ou égale à 1200 dont etat = disponible et qui a la consommation minimale.

voici ce que j'ai fait :
select immatriculation, consommation from vehicule where etat = 'Disponible' and consommation= (SELECT min (consommation) from vehicule WHERE capacite >= 1200)

j'ai inséré ds ma table vehicule ('XXXXX', 'NON DISPONIBLE', 1200, 8)
et vehicule (YYYYY, DISPONIBLE, 1200, 10).

Et bien quand je lance ma requête elle ne me renvoie aucun enregistrement. Mais moi je voudrais qu'il me retourne le minimum parmi les véhicules dont etat=Disponible et dont capacité>=1200.
Je crois que selon ma requête, il recherche le min(consommation) qui est 8 et comme il n'a pas etat=Disponible, il ne renvoie rien.


Merci de m'aider . Passez une excellente journée.....



1 réponse

supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
28 août 2011 à 17:48
SELECT immatriculation, consommation FROM vehicule WHERE etat='Disponible' AND capacite >= 1200 ORDER BY consommation ASC LIMIT 0,1
0
OUROBANGNA Messages postés 69 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 17 mars 2014 5
28 août 2011 à 18:32
MERCI BEAUCOUP SUPERNICO. je l'ai inséré dans mon code et il marche pin pète. En revanche pouvez vous m'expliquer ce que fait la clause ORDER BY consommation ASC LIMIT 0,1?? ça marche, mais je veux comprendre comment cette requete fonctionne et pas la mienne... Merci encore une fois
0
supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
28 août 2011 à 18:36
"ORDER BY consommation ASC" trie par consommation croissante
"LIMIT 0,1" limite le nombre de résultats à 1 (ou 2 je sais plus) vu que tu ne veux que le résultat avec la conso min ça évite au service SQL de chercher les autres ;)
0
OUROBANGNA Messages postés 69 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 17 mars 2014 5
28 août 2011 à 19:21
je vois comment ça marche. Merci bcp. Bonne soirée à vous..
0