requete multicritere sur date

requete multicritere sur date - SQL/NoSQL - Programmation

Marsh Posté le 31-03-2008 à 00:22:03    

bonjour j'ai une table MySQL avec les champs suivants  
 
lieu , date , info  
 
exemple de contenus
 
Paris ,  3/12/07 , texteA
Marseille , 4/4/08 , TexteB
Marseille , 4/3/08 , TexteE
Paris ,  3/11/07 , texteC
Paris ,  3/10/08 , texteD
 
Je cherche a sélectionner les dernières infos de tout les lieu donc ici
 
TexteE
texteD
 
autant pour le lieu un coup de unique et zouuu mais pour les dates je sais pas trop m'y prendre pour chopper la derniere  
ca doit être tout con mais je sais pas trop comment faire  
 
 

Reply

Marsh Posté le 31-03-2008 à 00:22:03   

Reply

Marsh Posté le 31-03-2008 à 02:56:07    

c'est pit-etre mieux de stocker la date sous forme date aaaa-mm-jj qui est "triable"


---------------
oui oui
Reply

Marsh Posté le 31-03-2008 à 15:52:05    

meme ainsi, trier oki , mais comment choper les dernieres :/  
 
en une requete je vois pas trop
en X ouep  
 
on fait un select UNIQUE pour chopper les villes
et ensuite on fait un select pour chaqune des villes avec un SORT sur la date et on prend la première

Reply

Marsh Posté le 31-03-2008 à 16:03:09    

Il faut ajouter un champ: "date d'insertion" avec un update automatique quand un champ est inseré. Ensuite peut être faire un MAX de TO_DAYS ?

Reply

Marsh Posté le 31-03-2008 à 16:10:20    

note: je pense qu'il y a environ 25 posts qui répondent à cette problématique sur le forum :o , une petite recherche eût pu s'avérer utile.

 

Bref:

Code :
  1. SELECT
  2. info
  3. FROM
  4. taTable t
  5. WHERE
  6. EXISTS (
  7.  SELECT
  8.   t2.lieu,
  9.   max(t2.date)  
  10.  FROM
  11.   taTable t2
  12.  WHERE
  13.   t2.lieu = t.lieu
  14.  HAVING
  15.   max(t2.date) = t.date
  16.  )
 

edit: indentation

Message cité 1 fois
Message édité par anapajari le 31-03-2008 à 16:11:08

---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 31-03-2008 à 16:32:29    

merci beaucoup de cette réponse .  

Reply

Marsh Posté le 31-03-2008 à 17:28:56    

anapajari a écrit :

note: je pense qu'il y a environ 25 posts qui répondent à cette problématique sur le forum :o , une petite recherche eût pu s'avérer utile.
 
Bref:

Code :
  1. SELECT
  2. info
  3. FROM
  4. taTable t
  5. WHERE
  6. EXISTS (
  7.  SELECT
  8.   t2.lieu,
  9.   max(t2.date)  
  10.  FROM
  11.   taTable t2
  12.  WHERE
  13.   t2.lieu = t.lieu
  14.  HAVING
  15.   max(t2.date) = t.date
  16.  )


 
edit: indentation


 
Petite correction pour que ca fonctionne :)  
 
 

Code :
  1. SELECT
  2. info
  3. FROM
  4. taTable t
  5. WHERE
  6. EXISTS (
  7.  SELECT
  8.   t2.lieu,
  9.   max(t2.date)  
  10.  FROM
  11.   taTable t2
  12.  WHERE
  13.   t2.lieu = t.lieu
  14.  GROUP BY
  15.   t2.lieu
  16.  HAVING
  17.   max(t2.date) = t.date
  18.  )


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed