Sql et access

absurde -  
 Nadine -
voila c'est très simple

je dois aller rechercher un prix dans une table selon une date...

jusque là rien de compliqué

mais si il ne trouve pas de date approprié il doit rechercher la date la plus proche (dans le passé)

la date indiquant en fait les changements de prix...

ex: le 02.02.02 -> 2fr
le 04.02.02 -> 4fr

je veux rechercher le prix pour le 03.02.02:

vu qu'il ne trouve pas de changement de prix pour le 03.02.02, il recherche l'ancien prix le plus proche : 2 fr

peut-on faire ceci avec du sql....

ou avec du vba?

4 réponses

bristol Messages postés 18 Statut Membre
 
moi je trierais ma table en fonction des dates l'instruction c'est "order by NOMDUCHAMPS" et ensuite tu prends celui juste avant
0
calje Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   5
 
Je ne sais pas si j'ai bien compris ton besoin... mais tu peux peut-être utiliser l'instruction SQL BETWEEN.

ex :

SELECT Participant.Nom, Participant.DateInsc
FROM Participant
WHERE (Participant.DateInsc Between #2/18/2002# And #2/20/2002#);

Mais de toute façon, ce n'est pas du coté SQL que tu dois faire ton traitement. C'est avec le résultat de ta requête SQL que tu fais tes traitements.
0
calje Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   5
 
Je ne sais pas si j'ai bien compris ton besoin... mais tu peux peut-être utiliser l'instruction SQL BETWEEN.

ex :

SELECT Participant.Nom, Participant.DateInsc
FROM Participant
WHERE (Participant.DateInsc Between #2/18/2002# And #2/20/2002#);

Mais de toute façon, ce n'est pas du coté SQL que tu dois faire ton traitement. C'est avec le résultat de ta requête SQL que tu fais tes traitements.
0
Nadine
 
Tu dois d'abord sélectionner la date de changement de prix adhoc
select date from TABLE where date <= *date du prix recherché*
Tout dépend des règles d'organisation de ta table mais on suppose qu'il n'y a qu'un changement de prix par jour sinon il faudra arbitrer
Et ensuite sélectionner le prix de la date trouvée ce qui donne un select imbriqué :
select prix from table where date in (select date from table where date <= *date du prix recherché*)

Bonne chance
0