OVH Cloud OVH Cloud

prochaine valeur

8 réponses
Avatar
Le Noob
Bonjour,

J'ai une table avec un champ "valeur" (cours d'Opcvm) et un champ "date" qui
retrace les jours de l'année. Les Opcvm ne sont pas cotés certains jours et
la "valeur" est donc égale à 0 (texte) sur les dates concernées.
La solution est surement très simple, mais comment faire une requète "maj"
qui me récupère la valeur du prochain jour coté (par exemple pour samedi ou
dimanche, afficher la valeur du lundi suivant)

Merci d'avance !

8 réponses

Avatar
Michel Gesnot
Bonjour,

Vous pourriez utiliser la fonction WeekDay pour tester le
jour de la semaine et filtrer les samedi et diamnche.

Bon travail.
Michel Gesnot



-----Message d'origine-----
Bonjour,

J'ai une table avec un champ "valeur" (cours d'Opcvm) et
un champ "date" qui

retrace les jours de l'année. Les Opcvm ne sont pas cotés
certains jours et

la "valeur" est donc égale à 0 (texte) sur les dates
concernées.

La solution est surement très simple, mais comment faire
une requète "maj"

qui me récupère la valeur du prochain jour coté (par
exemple pour samedi ou

dimanche, afficher la valeur du lundi suivant)

Merci d'avance !


.



Avatar
Le Noob
Bonjour Michel,

Ca ne me suffirait pas, car la bourses a ses propres jours fériés, et en
plus j'ai parfois des cotations sur d'autres places. Il n'y a pas un moyen
tout simple pour récupérer la valeur du prochain enregistrement ?

Merci de votre réponse !

"Michel Gesnot" a écrit dans le
message de news:18e2b01c44bb1$92a10fe0$
Bonjour,

Vous pourriez utiliser la fonction WeekDay pour tester le
jour de la semaine et filtrer les samedi et diamnche.

Bon travail.
Michel Gesnot



-----Message d'origine-----
Bonjour,

J'ai une table avec un champ "valeur" (cours d'Opcvm) et
un champ "date" qui

retrace les jours de l'année. Les Opcvm ne sont pas cotés
certains jours et

la "valeur" est donc égale à 0 (texte) sur les dates
concernées.

La solution est surement très simple, mais comment faire
une requète "maj"

qui me récupère la valeur du prochain jour coté (par
exemple pour samedi ou

dimanche, afficher la valeur du lundi suivant)

Merci d'avance !


.



Avatar
Michel Gesnot
Re-Bonjour "Le Noob"

Que voulez-vous faire au juste ?

Dans le cas d'un WE, reporter la valeur du lundi dans
Samedi et Dimanche, soit avoir 3 jours avec la même
cotation ?
Dans ce cas, vous faussez vos graphiques et vos moyennes.

OU

Eliminer les jours de fermeture, ce qui n'est pas
nécessairement le même que jours sans cotation : les
petites valeurs ne sont pas toujours cotées, tandis que
les grandes le sont toujours sauf suspension pour
événement spécial (OPA, communiqué etc.)
Si vous travaillez sur des grandes valeurs, une cotation
zéro ne pourrait survenir qu'un jour de fermeture et vous
pourriez vous contenter de filtrer les valeur "0".
Le nec + ultra serait évidemment de mémoriser les jours de
fermeture dans une table spécifique. Ils sont généralement
publiés dans les infos générales des sites boursiers.

Pour revenir à votre demande spécifique, je vois une
piste :

ouvrir votre requête maj en vba comme un recordset.
parcourir le recordset, détecter le premier "0" et
mémoriser sa position (y), continuer la lecture et quand
vous trouver à nouveau une valeur différente de 0 en
position y + n , aller copier cette valeur dans les
positions y à (y + n-1), puis continuer la boucle
principale (recherche de "0") jusqu'à la fin du recordset
(EOF).

Si le recordset ne peut pas être mis à jour (j'ai une
hésitation dans ce cas), passer par une table de
traitement intermédiaire ou faire le traitement sur la
table des cotations qui aurait été mise à jour, "0" inclus.

J'espère que cela vous ouvre un horizon pas trop lointain..
M. Gesnot


-----Message d'origine-----
Bonjour Michel,

Ca ne me suffirait pas, car la bourses a ses propres
jours fériés, et en

plus j'ai parfois des cotations sur d'autres places. Il
n'y a pas un moyen

tout simple pour récupérer la valeur du prochain
enregistrement ?


Merci de votre réponse !

"Michel Gesnot" a
écrit dans le

message de news:18e2b01c44bb1$92a10fe0$
Bonjour,

Vous pourriez utiliser la fonction WeekDay pour tester le
jour de la semaine et filtrer les samedi et diamnche.

Bon travail.
Michel Gesnot



-----Message d'origine-----
Bonjour,

J'ai une table avec un champ "valeur" (cours d'Opcvm) et
un champ "date" qui

retrace les jours de l'année. Les Opcvm ne sont pas cotés
certains jours et

la "valeur" est donc égale à 0 (texte) sur les dates
concernées.

La solution est surement très simple, mais comment faire
une requète "maj"

qui me récupère la valeur du prochain jour coté (par
exemple pour samedi ou

dimanche, afficher la valeur du lundi suivant)

Merci d'avance !


.




.




Avatar
Daniel Carollo
Bonjour Le Noob (Quel drole de nom!)

Dans des cas semblables, je fais un Max() sur la date, avec un critere sur
la valeur, du genre:

SELECT Max(LaDate) FROM MesCours WHERE LaValeur > 0 and LaDate > MaDateRecherchee

Cela permet de recuperer la date du dernier cours.
On peut alors utiliser cette date come critere pour prendre la valeur:

SELECT Valeur FROM MesCours WHERE LaDate IN (
SELECT Max(LaDate) FROM MesCours WHERE LaValeur > 0 and
LaDate >= MaDateRecherchee)

Cela suppose qu'il n'y a au plus qu'une seule quotation par par jour.

Voila, il y a d'autre moyens de faire, mais celui-ci a l'avantage d'etre
simple a expliquer...

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Le Noob" wrote in message
news:
Bonjour,

J'ai une table avec un champ "valeur" (cours d'Opcvm) et un champ "date"
qui

retrace les jours de l'année. Les Opcvm ne sont pas cotés certains jours
et

la "valeur" est donc égale à 0 (texte) sur les dates concernées.
La solution est surement très simple, mais comment faire une requète "maj"
qui me récupère la valeur du prochain jour coté (par exemple pour samedi
ou

dimanche, afficher la valeur du lundi suivant)

Merci d'avance !




Avatar
M Gesnot
Bonjour Daniel et Le Noob

Votre solution est effectivement simple mais implique :
1. qu'on rentre un paramètre MaDateRecherchée, si j'ai
bien suivi
2. qu'il y ait au maximum une cotation non pas par jour,
mais dans le fichier de transfert, ce qui signifie
- qu'il faut effectuer le transfert tous les jours ou sur
des fichiers journaliers (certains sites permettent des
fourchettes sur plusieurs jours ex Boursorama : 30 jours
sur une catégorie)
- qu'il n'y ait qu'une cotation par jour, ce qui est le
cas généralement sur les données grand public.

Donc, si Le Noob est très méthodique, cela pourra
fonctionner.

Bonne nuit ...
M. Gesnot
-----Message d'origine-----
Bonjour Le Noob (Quel drole de nom!)

Dans des cas semblables, je fais un Max() sur la date,
avec un critere sur

la valeur, du genre:

SELECT Max(LaDate) FROM MesCours WHERE LaValeur > 0 and
LaDate >=

MaDateRecherchee

Cela permet de recuperer la date du dernier cours.
On peut alors utiliser cette date come critere pour
prendre la valeur:


SELECT Valeur FROM MesCours WHERE LaDate IN (
SELECT Max(LaDate) FROM MesCours
WHERE LaValeur > 0 and

LaDate >= MaDateRecherchee)

Cela suppose qu'il n'y a au plus qu'une seule quotation
par par jour.


Voila, il y a d'autre moyens de faire, mais celui-ci a
l'avantage d'etre

simple a expliquer...

--
Daniel :-)

Computing Technologies International - www.computing-
tech.com - We

provide solutions...

"Le Noob" wrote in message
news:
Bonjour,

J'ai une table avec un champ "valeur" (cours d'Opcvm)
et un champ "date"


qui
retrace les jours de l'année. Les Opcvm ne sont pas
cotés certains jours


et
la "valeur" est donc égale à 0 (texte) sur les dates
concernées.


La solution est surement très simple, mais comment
faire une requète "maj"


qui me récupère la valeur du prochain jour coté (par
exemple pour samedi


ou
dimanche, afficher la valeur du lundi suivant)

Merci d'avance !





.




Avatar
Daniel Carollo
Bonjour Michel (et le Noub).


"M Gesnot" wrote in message
news:18b6c01c44c19$82a8f220$
Bonjour Daniel et Le Noob

Votre solution est effectivement simple mais implique :
1. qu'on rentre un paramètre MaDateRecherchée, si j'ai
bien suivi


Oui, en general, on recherche une cote pour un jour donne...
Si toutefois on veut le dernier jour dans la table, il suffit d'enlever la
condition sur la date.

2. qu'il y ait au maximum une cotation non pas par jour,
mais dans le fichier de transfert, ce qui signifie


Je ne comprend pas cette affirmation. D'apres le Noube, il y a un fichier
avec plusieurs dates (une par jour de l'annee si je m'abuse):
J'ai une table avec un champ "valeur" (cours d'Opcvm) et un champ "date"
qui



retrace les jours de l'année.



- qu'il faut effectuer le transfert tous les jours ou sur
des fichiers journaliers (certains sites permettent des
fourchettes sur plusieurs jours ex Boursorama : 30 jours
sur une catégorie)


La ca commence a aller plus loin que le cadre de la question posee. Je n'ai
pas vraiment fait de supposition sur la facon dont la table du Nouhb etait
alimentee...

- qu'il n'y ait qu'une cotation par jour, ce qui est le
cas généralement sur les données grand public.


C'est en effet la condition que j'avais formule dans ma reponse.

Donc, si Le Noob est très méthodique, cela pourra
fonctionner.


Ca peut toujours fonctionner... ;-) mais bien sur pas tel que je l'ai
mis dans ma reponse, il faudra que le Newb adapte. En particulier s'il a des
quotations de plusieurs titres dans la meme table.

Bonne nuit ...
Euhhh... la c'est fini depuis un moment ;-) Bonne journee a vous, Michel.



--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...



Avatar
M. Gesnot
Bonjour Daniel et Le Noob

Moi, en l'absence de précisions, j'étais parti de l'idée
que Le Noob
1. voulait suivre son portefeuille et donc plusieurs
valeurs.
2. n'était pas un professionnel, sinon il investirait dans
un progiciel, avec toutes les fonctions adhoc et aurait un
abonnement auprès d'un diffuseur de services financiers.
3. que n'étant pas professionnel, il n'allait pas être
tout à fait méthodique et allait aussi partir en vacances,
voire en déplacement professionnel. Absences pendant les
quelles personne ne prendrait le relais, ce qui amenait à
devoir rapatrier des données sur des périodes variables.

D'où, une optique de traitement de masse.

Quoiqu'il en soit, Le Noob a maintenant matière à
réflexion et à travail.

Mais enfin, je retiendrai la requête.
J'ai tendance à être plus basique, au sens vba s'entend.

Excellente semaine.
Michel Gesnot



-----Message d'origine-----
Bonjour Michel (et le Noub).


"M Gesnot" wrote in
message

news:18b6c01c44c19$82a8f220$
Bonjour Daniel et Le Noob

Votre solution est effectivement simple mais implique :
1. qu'on rentre un paramètre MaDateRecherchée, si j'ai
bien suivi


Oui, en general, on recherche une cote pour un jour
donne...

Si toutefois on veut le dernier jour dans la table, il
suffit d'enlever la

condition sur la date.

2. qu'il y ait au maximum une cotation non pas par jour,
mais dans le fichier de transfert, ce qui signifie


Je ne comprend pas cette affirmation. D'apres le Noube,
il y a un fichier

avec plusieurs dates (une par jour de l'annee si je
m'abuse):

J'ai une table avec un champ "valeur" (cours d'Opcvm)
et un champ "date"




qui
retrace les jours de l'année.



- qu'il faut effectuer le transfert tous les jours ou
sur


des fichiers journaliers (certains sites permettent des
fourchettes sur plusieurs jours ex Boursorama : 30 jours
sur une catégorie)


La ca commence a aller plus loin que le cadre de la
question posee. Je n'ai

pas vraiment fait de supposition sur la facon dont la
table du Nouhb etait

alimentee...

- qu'il n'y ait qu'une cotation par jour, ce qui est le
cas généralement sur les données grand public.


C'est en effet la condition que j'avais formule dans ma
reponse.


Donc, si Le Noob est très méthodique, cela pourra
fonctionner.


Ca peut toujours fonctionner... ;-) mais bien sur pas
tel que je l'ai

mis dans ma reponse, il faudra que le Newb adapte. En
particulier s'il a des

quotations de plusieurs titres dans la meme table.

Bonne nuit ...
Euhhh... la c'est fini depuis un moment ;-) Bonne

journee a vous, Michel.



--
Daniel :-)

Computing Technologies International - www.computing-
tech.com - We

provide solutions...


.






Avatar
Le Noob
Bonjour,
(le Noob : newbie, arpète, apprenti, schtief, débutant !)

Je vous remercie des pistes que vous m'avez lancé.
Pour plus de précisions, je suis un professionnel du patrimoine, et je
cherche à obtenir un résultat satisfaisant en terme d'agrégation de données
: j'ai des clients qui sont titulaires de différents contrats
d'assurance-vie, pea, compte-titre etc, dans différentes sociétés.
Je veux obtenir l'exposition de chacun à un moment T, en général
aujourd'hui, sur les différents secteurs que je préconise.
Des logiciels existent sur le marché, mais rapatrient la position finale des
sociétés financières qui y participent. Ce qui tend à exclure les sociétés
qui ne participent pas, et cela chagrine mon esprit d'indépendant.
C'est pourquoi je me lance dans une application qui reconstitue chaque
contrat dès le départ, par exemple pour un investissement régulier. Pour
ensuite réunir les données des différents contrats.

Le but précis de ma recherche actuelle :
J'ai un contrat qui s'investi périodiquement sur 3 valeurs (1 cours par
jour). Pour cela j'importe l'historique (xls) des valeurs, mais cet
historique comporte des "blancs" (w-e, jours féries, trève des confiseurs !)
Ma base me determine les dates d'échéance en incrémentant la date de début
des versements selon qu'ils soient mensuels, tri, sem ou annuels. Si une
date d'échéance tombe le 5 juin, je n'ai pas la valeur correspondante dans
ma table "valeur opcvm". Il me faut le cours du lundi. Ma table comporte
toutes les valeurs de tous les opcvm avec lesquels je travaille (une
cinquantaine)

Pour l'instant, je retravaille la table à partir d'Excel, mais ca choque mon
esprit pratique (je copie en inversant le tri de la date et rentre une
condition "(si=0,cellule précédente, sinon cellule) . Je pensais qu'une
requète MAJ en viendrait au bout.

En conclusion :
La solution de Michel m'a l'air très bien, mais elle est pour l'instant au
delà de mon horizon :( Va falloir que je bosse !
Daniel lui a répondu à la deuxième question que je n'avais pas enore posé ;)

Merci à vous deux
Le Noob


"M. Gesnot" a écrit dans le message de
news:18f0401c44c61$168944d0$
Bonjour Daniel et Le Noob

Moi, en l'absence de précisions, j'étais parti de l'idée
que Le Noob
1. voulait suivre son portefeuille et donc plusieurs
valeurs.
2. n'était pas un professionnel, sinon il investirait dans
un progiciel, avec toutes les fonctions adhoc et aurait un
abonnement auprès d'un diffuseur de services financiers.
3. que n'étant pas professionnel, il n'allait pas être
tout à fait méthodique et allait aussi partir en vacances,
voire en déplacement professionnel. Absences pendant les
quelles personne ne prendrait le relais, ce qui amenait à
devoir rapatrier des données sur des périodes variables.

D'où, une optique de traitement de masse.

Quoiqu'il en soit, Le Noob a maintenant matière à
réflexion et à travail.

Mais enfin, je retiendrai la requête.
J'ai tendance à être plus basique, au sens vba s'entend.

Excellente semaine.
Michel Gesnot



-----Message d'origine-----
Bonjour Michel (et le Noub).


"M Gesnot" wrote in
message

news:18b6c01c44c19$82a8f220$
Bonjour Daniel et Le Noob

Votre solution est effectivement simple mais implique :
1. qu'on rentre un paramètre MaDateRecherchée, si j'ai
bien suivi


Oui, en general, on recherche une cote pour un jour
donne...

Si toutefois on veut le dernier jour dans la table, il
suffit d'enlever la

condition sur la date.

2. qu'il y ait au maximum une cotation non pas par jour,
mais dans le fichier de transfert, ce qui signifie


Je ne comprend pas cette affirmation. D'apres le Noube,
il y a un fichier

avec plusieurs dates (une par jour de l'annee si je
m'abuse):

J'ai une table avec un champ "valeur" (cours d'Opcvm)
et un champ "date"




qui
retrace les jours de l'année.



- qu'il faut effectuer le transfert tous les jours ou
sur


des fichiers journaliers (certains sites permettent des
fourchettes sur plusieurs jours ex Boursorama : 30 jours
sur une catégorie)


La ca commence a aller plus loin que le cadre de la
question posee. Je n'ai

pas vraiment fait de supposition sur la facon dont la
table du Nouhb etait

alimentee...

- qu'il n'y ait qu'une cotation par jour, ce qui est le
cas généralement sur les données grand public.


C'est en effet la condition que j'avais formule dans ma
reponse.


Donc, si Le Noob est très méthodique, cela pourra
fonctionner.


Ca peut toujours fonctionner... ;-) mais bien sur pas
tel que je l'ai

mis dans ma reponse, il faudra que le Newb adapte. En
particulier s'il a des

quotations de plusieurs titres dans la meme table.

Bonne nuit ...
Euhhh... la c'est fini depuis un moment ;-) Bonne

journee a vous, Michel.



--
Daniel :-)

Computing Technologies International - www.computing-
tech.com - We

provide solutions...


.