Problemme récupérer l'id du montant le plus grand

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problemme récupérer l'id du montant le plus grand

Re: Problemme récupérer l'id du montant le plus grand

par xTG » 08 nov. 2011, 12:58

Si, tu peux faire des sous-requêtes dans les clauses de jointures sur certains SGBD.
Et puis sinon il suffit de faire des jointures sans les mots clés (tout en clause where) comme à l'ancienne, on perds en performance du fait de la grande sélection mais si tu as vraiment besoin d'obtenir ce résultat...

Re: Problemme récupérer l'id du montant le plus grand

par gladii » 08 nov. 2011, 12:56

donc pas moyen de faire une jointure

merci a vous

Re: Problemme récupérer l'id du montant le plus grand

par moogli » 08 nov. 2011, 10:40

tu veux juste le montant le plus grand ?

comme tu le dit
SELECT idclient, montant FROM commandes order  by montant desc limit 1;
tu récupère qu'un seul montant et son idclient !
je ne suis pas certain que max soit supporté sur la clause where ?

sinon avec une sous requête
SELECT idclient, montant
FROM commandes WHERE montant = (select max(montant) from commandes;); 
devrait fonctionner ?

@+

Re: Problemme récupérer l'id du montant le plus grand

par gladii » 08 nov. 2011, 10:32

Ben dans se cas autant ecrire

SELECT idclient, montant
FROM commandes WHERE montant = max(montant);

^^

Et nan ça ne marche pas, a part les sous-requêtes je voix pas dautre solution à par
faire un tri en ordre décroissant sur la colonne montant et récupérer la premiere ligne mais c'est pas une jointure.
Et d'apres se que j'ai lu toute requetes peuvent etre remplacé par une jointure :?

Re: Problemme récupérer l'id du montant le plus grand

par Aureusms » 08 nov. 2011, 00:36

Je comprends pas bien. Tu veux joindre sur la même table ? Quel est l'intérêt ?

SELECT commandes1.idclient, commandes1.montant
FROM commandes AS commandes1 WHERE commandes1.montant = max(commandes1.montant);

Est ce que ca marche ?

Problemme récupérer l'id du montant le plus grand

par gladii » 07 nov. 2011, 22:14

Bonjours à tous, j'ai voulu faire une requête pour récupérer l'id du montant le plus grand mais il y a un petit problemme :
SELECT commandes1.idclient, commandes1.montant
FROM commandes AS commandes1 INNER JOIN commandes AS commandes2
ON commandes1.montant = max(commandes2.montant);

Je croie que ça vien de la fonction max.
Sinon j'ai trouver la solution avec une sous-requête mais je voulais trouver celle aussi avec une jointure

merci