Requête SQL
Bertrand
-
Bertrand -
Bertrand -
Bonjour,
Dans une table Treponses j'ai un champs auto-incrémenté numReponse, un champs userID, nomfichier et score. Je souhaite sélectionner (et grouper) ma table par le champs nomfichier et avoir le dernier score enregistré. Donc celui dont le numReponse est le plus élevé. Je fais :
select userID,nomfichier,score,max(numReponse) from
Mon group by fonctionne comme je veux puisque le nom d'un fichier n'apparait qu'une fois, par contre ma colonne score ne contient pas celui qui correspond au dernier enregistrement.
Pouvez-vous m'aider ?
Merci !
Dans une table Treponses j'ai un champs auto-incrémenté numReponse, un champs userID, nomfichier et score. Je souhaite sélectionner (et grouper) ma table par le champs nomfichier et avoir le dernier score enregistré. Donc celui dont le numReponse est le plus élevé. Je fais :
select userID,nomfichier,score,max(numReponse) from
Treponses where (nomfichier='fichier1.asp' or nomfichier='fichier2.asp') and userID=1 group by nomfichier order by numReponse desc
Mon group by fonctionne comme je veux puisque le nom d'un fichier n'apparait qu'une fois, par contre ma colonne score ne contient pas celui qui correspond au dernier enregistrement.
Pouvez-vous m'aider ?
Merci !
A voir également:
- Requête SQL
- Logiciel sql - Télécharger - Bases de données
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Sql (+) - Forum Programmation
- Cherche des haricot vendez les moi ✓ - Forum DS
- Sql lister les tables ✓ - Forum Programmation
6 réponses
ta question n'est pas tres claire .
pourquoi
'where (nomfichier='fichier1.asp' or nomfichier='fichier2.asp') '
pourquoi
'where (nomfichier='fichier1.asp' or nomfichier='fichier2.asp') '
Ben deja ton group by et order by, ils ne servent a rien car la requete va te renvoyer qu'un seul resultat...
celui avec max reponse
celui avec max reponse
Salut,
Ceci fonctionnerait-il mieux ?
@+
Nebulus
En route pour de nouvelles aventures !
Ceci fonctionnerait-il mieux ?
select a.userID, a.nomfichier, a.score, a.numReponse from Treponses a where a.numReponse = ( select max(b.numReponse) from Treponses b where (b.nomfichier='fichier1.asp' or b.nomfichier='fichier2.asp') and b.userID=1)
@+
Nebulus
En route pour de nouvelles aventures !
Hello Nebulus,
non ça ne fonctionne pas, j'ai oublié de préciser que j'utilises mySQL 4.14 qui ne gère pas je crois les select multiple.
Merci,
bertrand
non ça ne fonctionne pas, j'ai oublié de préciser que j'utilises mySQL 4.14 qui ne gère pas je crois les select multiple.
Merci,
bertrand
Salut,
C'est étrange, j'ai été voir la doc MySql et ils disent que les sous-selects sont implémentés en 4.1 ( voir http://www.mysql.com/doc/en/Nutshell_4.1_features.html) !?
Bon, comme je n'ai encore qu'une "vieille" 3.32, je peux pas tester et te dire ce que ça donne chez moi...
@+
Nebulus
En route pour de nouvelles aventures !
C'est étrange, j'ai été voir la doc MySql et ils disent que les sous-selects sont implémentés en 4.1 ( voir http://www.mysql.com/doc/en/Nutshell_4.1_features.html) !?
Bon, comme je n'ai encore qu'une "vieille" 3.32, je peux pas tester et te dire ce que ça donne chez moi...
@+
Nebulus
En route pour de nouvelles aventures !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question