Aller au contenu

Date la plus récente...


ZuckBin

Sujets conseillés

Bonjour,

Après plusieurs heures, je me résigne à venir chercher de l'aide...

Je souhaite sélectionner la date la plus récente dans une colonne DATE, par rapport à un ID identique unique.

Voici la requête:

SELECT DISTINCT RECORD, END_DATE
FROM log_cb
WHERE END_DATE < CURDATE( )
AND END_DATE = ( max( `END_DATE` ) ) AS maxdate
GROUP BY maxdate
ORDER BY END_DATE DESC

Voici les données:

END_DATE		RECORD
2008-09-05 171
2008-09-01 171
2008-09-18 171
2008-07-03 170

Donc je souhaite obtenir ceci:

END_DATE		RECORD
2008-09-18 171
2008-07-03 170

Merci de votre aide,

Cordialement.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

Bonjour,

En faite, je croyais mon problème résolu, mais pas du tout.

Voici la requête:

SELECT RECORD, MAX(END_DATE) AS maxdate FROM log_cb WHERE END_DATE < CURDATE() GROUP BY RECORD ORDER BY maxdate

Voici les résultats

RECORD 	maxdate
140 2008-10-04
168 2008-10-05

Qu'alors voici les données réelles:

END_DATE 	RECORD
2008-10-04 140
2008-11-04 140
2008-10-05 168
2008-11-05 168

Le résultat attendu est ceci:

END_DATE 	RECORD
2008-11-04 140
2008-11-05 168

Merci de votre aide,

Cordialement

Lien vers le commentaire
Partager sur d’autres sites

En faite, je suis plus sur d'avoir pris le problème dans le bon sens.

Je vais re expliquer pour que l'on puisse y voir clair.

J'ai un prestataire qui m'envoie des infos tout les jours via un webservice, passage de variables via un url.

Je récupère les infos et je les insèrent dans ma base de donné log_cb, d'où les enregistrements:END_DATE qui est la fin d'un abonnement, et RECORD qui est un identifiant unique pour mes membres.

Je souhaite exécuter un script quotidien via cron qui va vérifier si END_DATE < à la date du jour: si c'est le cas, je met à jour mes enregistrements et je met fin à l'abonnement.

Dans le cas contraire, on ne fais rien.

Voila :)

Lien vers le commentaire
Partager sur d’autres sites

SELECT RECORD, END_DATE FROM log_cb GROUP BY RECORD HAVING max(END_DATE) < CURDATE()

Bingo !

Ca fonctionne...

Merci pour votre aide ;)

Résolu....

Modifié par ZuckBin
Lien vers le commentaire
Partager sur d’autres sites

malheureux, remplace ton end_date par un max(end_date), sinon tu vas avoir de bien mauvaises surprises... Là MySQL te retourne un end_date "au hasard" parmi tous ceux possibles.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...