Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/08/2011, 16h15   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 52
Points : 11
Points : 11
Par défaut Sélectionner l'id d'une max(date).

Bonjour !

J'ai 1 table toute bête :

id_date(INT)
date_en(DATE)

Et j'aimerais en extraire l'enregistrement complet (id et date) qui correspond à la date la plus récente.
Quand je fais la requête suivante, je n'ai pas le bon id_date qui sort (en fait ça prend le 1er id_date de la liste, qui ne correspond pas à la date associée)

Code :
1
2
 
SELECT id_date, MAX(date_en) FROM matable
Je n'ai pas plus de réussite avec :

Code :
1
2
 
SELECT id_date, MAX(date_en) FROM matable GROUP BY id_date
(là, j'ai autant d'enregistrements que d'id_date qui sortent, sans tenir compte de MAX()).

J'ai aussi essayé une sous-requête dans la clause WHERE, mais rien !

Je sèche complètement, merci de m'aider !

@+
Marmotton76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 16h43   #2
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
Avez vous essayer quelque chose du genre

Code :
1
2
3
4
5
6
SELECT 
   id_date,date_en
FROM
  matable
WHERE
   date_en = (SELECT MAX(date_en) FROM matable)
?
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 16h56   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 52
Points : 11
Points : 11
Merci infiniment !

En fait j'ai dû trouver la réponse à peu près en mm temps que vous écriviez la vôtre

J'avais simplifié ma question car mon champ date_en était en fait une concatenation d'un mois et d'une année pour les transformer en date valide :
date_en = CAST(CONCAT(annee,'-',mois,'-01') AS DATE)

Et au début je n'arrivais pas à formuler la requête telle que vous la proposiez et que je connaissais, une bête histoire de virgule en fait, alors que finalement cette requête fonctionne parfaitement même avec ce champ concaténé !

En tout cas merci encore et surtout 1000 excuses pour le dérangement !

Citation:
Envoyé par Yanika_bzh Voir le message
Avez vous essayer quelque chose du genre

Code :
1
2
3
4
5
6
SELECT 
   id_date,date_en
FROM
  matable
WHERE
   date_en = (SELECT MAX(date_en) FROM matable)
?
Marmotton76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h40.


 
 
 
 
Partenaires

Hébergement Web