récupérer l'avant dernier

récupérer l'avant dernier - SQL/NoSQL - Programmation

Marsh Posté le 07-03-2006 à 15:26:57    

bonjour à tous,  
 
j'ai une table avec dedans par exemple:  
 
bug_id------date_modified--------------old_value-------new_value  
 
7------------13/01/2005 19:25:08-------10--------------30  
7------------18/01/2005 17:48:30-------30--------------45  
7------------24/02/2005 16:18:32-------45--------------80  
7------------04/03/2005 12:48:13-------80--------------90  
10----------13/01/2005 19:23:20--------10-------------20  
10----------25/01/2005 10:20:11--------20-------------40  
10----------25/01/2005 10:21:40--------40-------------80  
10----------12/07/2005 09:32:16--------80-------------90  
 
je voudrais récupérer l'avant dernière de chaque bug_id  
donc ça:  
 
7------------24/02/2005 16:18:32-------45--------------80  
10----------25/01/2005 10:21:40--------40-------------80  
 
mais je n'arrive qu'à récupérer la dernière en faisant ça:  
 

Code :
  1. SELECT mantis_bug_history_table.bug_id, Last(mantis_bug_history_table.date_modified) AS DernierDedate_modified, Last(mantis_bug_history_table.new_value) AS DernierDenew_value
  2. FROM mantis_bug_history_table
  3. WHERE (((mantis_bug_history_table.field_name)="status" ))
  4. GROUP BY mantis_bug_history_table.bug_id;


 
savez vous comment faire?

Reply

Marsh Posté le 07-03-2006 à 15:26:57   

Reply

Marsh Posté le 07-03-2006 à 17:22:56    

Juste une idée à creuser.
 
select *  
from matis_bug_history_table  
where mantis_bug_history_table.date_modified < ( select max(subquery.date_modified) from matis_bug_history_table as subquery)
order by mantis_bug_history_table.date_modified desc
limit 1
 
Dans une sous requête tu recherche le max pour la date.
Dans la requête tu cherche une valeur inférieure à ce max.
Comme tu vas trier ta liste dans l'ordre décroissant, la valeur affichée en tête devrait correspondre à l'avant dernier si je ne m'abuse ;).


Message édité par jeoff le 07-03-2006 à 17:26:04
Reply

Marsh Posté le 08-03-2006 à 11:08:55    

génial merci ça marche très bien.
 
j'ai maintenant un autre problème.  
dans une requete je récupère les dernieres dates où la valeur est à 80 ou 90
en fonction de ces dernières dates je récupères les avant dernières qui ont elles aussi 80 ou 90
mon problème est que si j'ai ça:
 
dernier ----------------------------- avant dernier
 
1 ---------------------------------- 2  
2 ---------------------------------- 4  
3 ---------------------------------- 5  
4  
5  
6  
 
ce que je voudrais c'est récupérer les dates de tous les avant dernier et seulement des derniers qui ne sont pas dans avant-dernier.  
 
savez vous comment faire?

Reply

Sujets relatifs:

Leave a Replay

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