probleme de requete pour recuperer un max

probleme de requete pour recuperer un max - SQL/NoSQL - Programmation

Marsh Posté le 13-02-2008 à 15:01:16    

salut,
 
J'ai une table qui contient ses données
 
 

Citation :

A B C D E
Z 21/11/2007 16:50:50 127 1 45
A 21/11/2007 14:50:50 126 1 78
Y 21/11/2007 14:50:50 125 1 22
V 21/11/2007 13:50:50 124 1 56  


 
ce que je souhaiterais c'est recuperer les infos de la deuxieme ligne
c'est à dire celle inferieur au A 21/11/2007 14:50:50 126 1 78
et pour cela je fois faire une requete qui me retourne le max B (la date) et le max C;
j'ai fait cette requete mais elle me retourne les deux lignes, je suis un peu perdu
 
 

Citation :

 
 
SELECT  max(B),max(C),D,E FROM matable
WHERE B < TO_DATE('21/11/2007 16:50:50, 'DD/MM/YYYY HH24:MI:SS')
and D= 1
group by D,E


 
 
est ce que vous voyez comment je pourrai faire ?
 
merci à tous.  
       

Reply

Marsh Posté le 13-02-2008 à 15:01:16   

Reply

Marsh Posté le 13-02-2008 à 15:15:18    

je comprends pas !
 
si je traduis "c'est recuperer les infos de la deuxieme ligne
c'est à dire celle inferieur au A 21/11/2007 14:50:50 126 1 78" cela donne
 

Code :
  1. SELECT B, C FROM matable WHERE B < TO_DATE('21/11/2007 14:50:50, 'DD/MM/YYYY HH24:MI:SS')


 
et dans ce cas j'ai trois lignes ce qui me semble juste en terme de resultat.
 
D'ou je ne suis pas sur que ta demande soit claire

Reply

Marsh Posté le 14-02-2008 à 05:58:40    

en faite je souhaite recuperer que cette ligne

Citation :


A 21/11/2007 14:50:50 126 1 78  


c'est à dire celle dont la date est inferieur à cette date "21/11/2007 16:50:50" ,ensuite dans toutes lignes qui seront inferieur à cette date, je souhaite recuperer la ligne avec le max date (21/11/2007 14:50:50 )
et si jamais j'ai deux ligne avec la même date , je prends celle qui à la plus grand C (max(c) ) dans mon cas = 126
et donc au final je dois avoir qu'une seule ligne :
A 21/11/2007 14:50:50 126 1 78 (date inferieur à 21/11/) et max(C))

Reply

Marsh Posté le 14-02-2008 à 11:55:30    

SELECT *  
FROM TaTable  
WHERE B < '21/11/2007 16:50:50'
ORDER BY B, C DESC
 
Et toi tu met LIMIT 0, 1 soit un TOP 1 en inversant les ORDERS
 
Sinon tu fais une requete imbriqué pour le MAX

Reply

Marsh Posté le 18-02-2008 à 10:45:18    

je comprends pas trop l'histoire du LIMIT 0,1 ???

Reply

Marsh Posté le 18-02-2008 à 15:24:22    

donny3 a écrit :

je comprends pas trop l'histoire du LIMIT 0,1 ???


 
LIMIT x,y : Renvoie y element à partir de l'élément x
Dans ton cas renvoie 1 élément à partir de l'élément 0 = renvoie le premier élément


---------------
How can I save my little boy from Oppenheimer's deadly toy ? There is no monopoly of common sense on either side of the political fence
Reply

Sujets relatifs:

Leave a Replay

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