Requete Max [sql] - SQL/NoSQL - Programmation
Marsh Posté le 19-08-2009 à 23:23:03
oui je cherche a avoir l'id de ma plus grand version pour tous mes nom
Je savais pas que le MAX on pouvait le mettre en critère where. merci
Je vais regarder ça car la requête que tu m'as donnée renvoie:
#1111 - Utilisation invalide de la clause GROUP
Marsh Posté le 19-08-2009 à 23:30:18
SELECT * FROM bmd_recettes WHERE version=(SELECT MAX(version) FROM bmd_recettes)
J'ai testé ceci, ca me renvoi uniquement LA plus grande version, alors que je peux avoir plusieurs nom et de plusieurs versions différentes
Marsh Posté le 19-08-2009 à 23:31:05
Oui en effet, j'ai merdé, c'est pour ça que j'ai retiré ma réponse, ça ne colle pas et c'est totalement honteux en y repensant, je me penche sur ta question
Marsh Posté le 19-08-2009 à 23:32:26
antac a écrit : Oui en effet, j'ai merdé, c'est pour ça que j'ai retiré ma réponse, ça ne colle pas et c'est totalement honteux en y repensant, je me penche sur ta question |
c'est pas grave
C'est déjà super gentil d'avoir répondu.
J'ai testé de placer un group by nom dans ma dernière requete.... pas moyen...
(je mets a jour le 1er post pour mettre plus d'exemple dans la table)
Marsh Posté le 19-08-2009 à 23:33:19
antac a écrit : Tu es bien sur MySQL ? |
MySQL 4.1.9-max sur le serveur localhost
Marsh Posté le 19-08-2009 à 23:35:24
|
en gros je veux avoir mes dernières versions de mes noms:
4-toto-version 2
9-titi - version 3
Marsh Posté le 19-08-2009 à 23:59:27
le truc que je ferai, c'est une fonction SQL qui te détermine le max à partir des paramètres du nom et que tu renvoi.
Marsh Posté le 20-08-2009 à 10:06:11
En gros un
Select id_recette,nom,date_creation,version,ismax(id_recette)
From bmd_recettes
Where ismax(id_recette)=true
Marsh Posté le 24-08-2009 à 09:43:45
merci je vais testé ca
comme mon client était pressé, j'avais trouvé l'astuce de faire une 2eme requête pour trouver l'id en fonction du nom et max(version) retourné par ma 1ere requete
Marsh Posté le 19-08-2009 à 22:28:38
Bonjour,
Je me bas avec le Max mais il me renvoi le mauvais ID du Max trouvé:
Exemple, ma table:
id_recette nom date_creation version
1 toto 1250701221 1
4 toto 1250702040 2
7 titi 1250702040 1
8 titi 1250702040 2
9 titi 1250702040 3
Avec: SELECT id_recette , nom , MAX(version) as version FROM bmd_recettes group by nom
Il me renvoie:
id_recette nom version
1 toto 2
Alors que ma version 2 possède l'id_recette 4 et non 1.
Je me suis trompé quelque part?
Merci
Message édité par Negro le 19-08-2009 à 23:34:25
---------------
http://www.zeec.de/media-details.jsp?mediaId=49063