PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 01/02/2013 17:18:27

barthymus
Membre

Recuperation d'un record à day -1

Bonjour,

Voila j'ai une table d'enregistrement qui est remplis toutes heures.
Ces enregistrements sont du type : NAME | BLABLA | TIME
Je voudrais, pour le dernier enregistremen d'un nom donné, chercher l'enregistrement qui se trouve à plus ou moins 24h de moins. ( et 72h mais bon sa en découlera)
Mes enregistrement se font toutes les heures mais suivant l'activités du serveur, l'heure et les minutes exactes peuvent changés
Je pourrais faire un truc genre :

 
Cursor C_fileS IS SELECT * from TABLE WHERE NAME = v_nameFS  AND DATE -1 < DATE() ORDER BY DATE;

Mais j'obtiendrais bien trop de résultat, inutillement.

Auriez vous une idée de comment obtenir l'unique résultat le plus proche  ?
Merci d'avance !

Hors ligne

#2 05/02/2013 09:30:56

barthymus
Membre

Re : Recuperation d'un record à day -1

Personne peut m'aider sur ce cas là ?

Hors ligne

#3 05/02/2013 10:28:36

rjuju
Administrateur

Re : Recuperation d'un record à day -1

Bonjour,

avec votre requête actuelle, vous pouvez ajouter une clause LIMIT 1.

Hors ligne

#4 05/02/2013 10:46:34

barthymus
Membre

Re : Recuperation d'un record à day -1

Je travaille sur du multi plateforme et je ne pense pas que Limit 1 serait possible pour tout les SGBD, il me semblait que c'était pas dans les normes SQL de bases ?
Mais merci.
J'ai pensé à un round, ou a une approximation mais je trouve toujours plus de résultats hmm

Hors ligne

#5 05/02/2013 11:12:45

rjuju
Administrateur

Re : Recuperation d'un record à day -1

La clause LIMIT n'est effectivement pas dans le standard SQL. Vous pouvez utilisez l'équivalent en standard sql :

FETCH FIRST 1 ROW ONLY

Malheuresement, à part postgres peu de moteurs savent le gérer.

Vous pouvez sinon utiliser des fonctions de fenêtrage (également dans la norme sql), de type row_number() OVER (ORDER BY DATE), mais je ne sais pas si tous les moteurs le gèrent également.

Hors ligne

#6 05/02/2013 11:15:24

barthymus
Membre

Re : Recuperation d'un record à day -1

J'ai pensé, au pire, au bloc pl-sql ouais avec un unique Fetch smile
Merci je vous tiens au courant big_smile

Hors ligne

Pied de page des forums