Vérifier une requête SQL

safowan Messages postés 174 Date d'inscription   Statut Membre Dernière intervention   -  
DROE Messages postés 148 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'aime bien vérifier la syntaxe de cette requête et merci d'avance :

La question est : Quel est le produit le plus cher ?

Ma réponse est :
                            select nom_produit 
                            from produit
                            having Max(prix);


Est ce que ma réponse est juste ?

A voir également:

2 réponses

DROE Messages postés 148 Date d'inscription   Statut Membre Dernière intervention   48
 
Sous Oracle c'est

SELECT nom_produit
FROM produit
WHERE ROWNUM=1
ORDER BY prix DESC;

Mais c'est pas propre comme méthode.

SELECT   nom_produit
  FROM   produit
 WHERE   prix IN (SELECT   MAX (prix) FROM produit)

Cette requête renvois le nom du produit le plus cher mais aussi les autres noms de produits si le prix le plus cher est identique.

DROE
http://www.dba-ora.fr
1
Arch
 
alors ne "having" n'est dispo qu'après un group by.
après tu ne peux pas faire max(prix) parce qu'on ne connait pas à priori toutes les valeurs des produits. Il faut soit comparer le prix avec le prix de tous les autres produits individuellement, soit tu peux peut-être faire :
SELECT TOP1 nom_produit
FROM produit
ORDER BY prix DESC;

pour trier tes produits par prix décroissant, et sélectionner juste le 1er
-1
Arch
 
enfin ça c'est la syntaxe sql server, si tu utilises mysql ou oracle, ce sera :
SELECT nom_produit
FROM produit
ORDER BY prix DESC
LIMIT 1;
0