Sql et access

Fermé
absurde - 27 févr. 2002 à 12:50
 Nadine - 28 févr. 2002 à 14:25
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 Date d'inscription mercredi 27 février 2002 Statut Membre Dernière intervention 19 août 2002
27 févr. 2002 à 15:59
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 mercredi 21 février 2001 Statut Membre Dernière intervention 20 mars 2002 4
27 févr. 2002 à 16:34
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 mercredi 21 février 2001 Statut Membre Dernière intervention 20 mars 2002 4
27 févr. 2002 à 16:34
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
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