Simuler un tableau de Conversion de Devises

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Répondre
Avatar de l’utilisateur
TITANIUM
Membre OOrganisé
Membre OOrganisé
Messages : 83
Inscription : 03 févr. 2011 22:02
Localisation : Cancun, Mexico

Simuler un tableau de Conversion de Devises

Message par TITANIUM »

Bonjour à tous,

J'apprends... C'est pour ça!!!
J'ai une question simple (et peut être un peu bête...):
Dans le cadre d'un projet plus ample, je veux intégrer un tableau de conversion de devises dans une Base De Données plus complexe.
Prenons par exemple 4 devises: EUR (Euro UE), USD (Dollar US), MXN (Peso Mexique), CNY (Yuan Chine)
_________EUR____USD____MXN___CNY
1 EUR = 1.00000 1.09590 16.78100 6.79856
1 USD = 0.91249 1.00000 15.36000 6.20347
1 MXN = 0.05959 0.06510 1.00000 0.40515
1 CNY = 0.14709 0.16120 2.46820 1.00000

Jusqu'ici, j'ai appris qu'une table représente un tableau dont les colonnes sont les champs et les lignes sont les enregistrements.
Par quel bout, je m'y prends?
Je peux déjà diviser le tableau en deux, puisque j'ai besoin seulement de la conversion dans un sens; dans l'autre sens c'est 1/Taux.
Quelqu'un a déjà traité ce sujet? Je n'ai rien trouvé sur le forum.

Par avance, merci. :mrgreen:
Dernière modification par TITANIUM le 12 nov. 2020 14:47, modifié 3 fois.
Lémi
LibreOffice 7.2.7.2
W10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25144
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: Simuler un tableau de Conversion de Devises

Message par Dude »

Salut,

Les valeurs à retourner sont des calculs donc tout ce que tu as à stocker c'est l'unité monétaire et son taux de change.
Avatar de l’utilisateur
TITANIUM
Membre OOrganisé
Membre OOrganisé
Messages : 83
Inscription : 03 févr. 2011 22:02
Localisation : Cancun, Mexico

Re: Simuler un tableau de Conversion de Devises

Message par TITANIUM »

Salut Dude,

Merci pour l'info. :D

Donc, je pourrais créer une table DEVISE
id_devise INTERGER Clé Primaire
nom_devise VARCHAR
code_devise VARCHAR 3 caractères

et une table TAUX
id_dev INTEGER
id_devise_taux
taux_devise

La clé primaire serait la combinaison de id_dev et id_devise_taux pour obtenir un seul taux de change pour chaque paire de devises.
Et je crée une relation entre id_dev et id_devise et entre id_devise_taux et id_devise.
Correct? :shock:

Y a-t-il une solution plus élégante?
[Édition #1] En réalité, la question serait: Est-ce que cette solution fonctionne? :?:
En attendant, je vais tester celle-ci.

Merci. :super:
Dernière modification par TITANIUM le 13 juin 2015 03:15, modifié 2 fois.
Lémi
LibreOffice 7.2.7.2
W10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25144
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: Simuler un tableau de Conversion de Devises

Message par Dude »

Je ne vois pas l'intérêt des deux tables.
Le change s'effectue sur un taux de référence souvent basé sur le dollar américain.

Donc pour moi, c'est uniquement :
  • id_devise INTERGER Clé Primaire
  • nom_devise VARCHAR
  • code_devise VARCHAR 3 caractères
  • taux_devise DECIMAL
Avatar de l’utilisateur
TITANIUM
Membre OOrganisé
Membre OOrganisé
Messages : 83
Inscription : 03 févr. 2011 22:02
Localisation : Cancun, Mexico

Re: Simuler un tableau de Conversion de Devises

Message par TITANIUM »

Merci Dude,

J'ai un doute. Si tu dis que c'est "SOUVENT" basé sur la devise USD, ça veut dire que parfois ça ne l'est pas.
J'ai vérifié sur les taux de change du jour entre les 4 devises qui m'intéressent: EUR, USD, MXN et CNY.
Effectivement, c'est très proche. Suffisamment pour confirmer tes dires pour ce qui concerne EUR/USD/CNY.
Mais il y a une légère différence pour EUR/USD/MXN (qui se fait sentir au-delà de 10,000.00 MXN-580.00 EUR)
Certes les marchés financiers s'impulsent les uns les autres, donc, c'est assez logique qu'il y ait une relation.
Mais c'est aussi assez logique que l'état de l'économie d'un pays influe en partie sur la valeur de sa monnaie.
Tout n'est pas (encore) entièrement basé sur l'économie américaine (même si elle est certes très influente; notamment au Mexique).
Enfin, je peux me tromper.
Dans le cas d'une seule table, tu dis qu'il me suffirait donc de saisir le taux de change de la devise uniquement avec le dollar US et
ensuite je fais une double conversion DEVISE1/USD puis USD/DEVISE2 pour obtenir le taux DEVISE1/DEVISE2.
Ça me parait génial parce que bien plus simple.
J'aurais préféré que ce soit TOUJOURS basé sur le dollar US pour me lancer dans une seule table...

Je vais clôturer et expérimenter avec une seule table. Si ça fonctionne pas, il me reste la possibilité des 2 tables.

Amitiés
Lémi
LibreOffice 7.2.7.2
W10
Avatar de l’utilisateur
TITANIUM
Membre OOrganisé
Membre OOrganisé
Messages : 83
Inscription : 03 févr. 2011 22:02
Localisation : Cancun, Mexico

Table(s) de conversion de devises

Message par TITANIUM »

Bonjour à tous,

Je reviens avec une autre réponse à la question que j'avais posée dans ce fil.
Comment créer une table de conversion de devises?

C'est en allant sur d'autres sites de création de bases de données orientées finances que j'ai compris comment faire.
Ce qu'il manquait, c'était un suivi dans le temps des valeurs de conversions. Si je fais une opération de change en janvier 2018, la même opération de change en novembre 2020 sera très différente...
Voici la réponse que je propose:

J'ai créé 3 tables:

Pays_tbl contenant
id_pays Clé Primaire J'ai utilisé les codes de la table ISO 3166-1
nom_pays VARCHAR
code_pays Texte fixe 2 caractères tirés de la même table ISO 3166
id_devise Clé externe de id_devise dans Devises_tbl
Cette table est optionnelle mais elle peut servir pour un projet plus complexe.

Devises_tbl
id_devise Clé Primaire / J'en ai profité pour utiliser le code numérique ISO 4217 officiel
nom_devise VARCHAR
code_devise Texte fixe 3 caractères issus aussi de l'ISO 4217

TauxDeChanges_tbl
de_devise_id Clé externe de id_devise dans Devises_tbl
a_devise_id Clé externe de id_devise dans Devises_tbl
Date_taux DATE d'actualisation du taux
taux DECIMAL, 6 décimales (ou plus, je dois vérifier la précision des taux de change, notamment entre les devises "bananières" et les devises "1er mondes" )

Avec une clé primaire composée de de_devise_id + a_devise_id + Date_taux créant pour chaque paire à une date donnée une clé unique.
Par exemple, [de 840 a 978, 11/11/20] (840 = USD et 978 = EUR)
La même paire mais inversée pour une même date peut exister.
[de 978 a 840, 11/11/20]
mais saisir une seconde fois [de 840 a 978, 11/11/20] devrait générer une erreur.
Le fait de pouvoir saisir les taux de change dans un sens et dans l'autre pourrait apparaître redondant mais, en réalité, ce sont presque toujours des taux de change bancaires qui imposent leurs commissions et donc rendent les taux différents dans un sens et dans l'autre (taux aller + commissions différent de taux retour + commissions).
(Ce n'est pas forcément comme une table des distances entre villes qui peut se passer de la moitié du tableau).

Ainsi, je peux saisir les taux entre n'importe quelles devises et, surtout, archiver les anciens taux pour des opérations antérieures et utiliser les nouveaux taux pour des opérations actuelles.

Salutations :)
Dernière modification par TITANIUM le 12 nov. 2020 14:52, modifié 3 fois.
Lémi
LibreOffice 7.2.7.2
W10
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12196
Inscription : 08 nov. 2005 17:23
Localisation : Caen, France
Contact :

Re: [Base] Table(s) de conversion de devises

Message par Bidouille »

Bonjour,
TITANIUM a écrit :Je reviens avec une réponse sur une question laissée sans réponse satisfaisante (et clôturée)
Dans ce cas, inutile de rouvrir une nouvelle question.
Je fusionne avec le fil précédent.

Enlevez la balise [Résolu] et continuez de poster à la suite.
Avatar de l’utilisateur
TITANIUM
Membre OOrganisé
Membre OOrganisé
Messages : 83
Inscription : 03 févr. 2011 22:02
Localisation : Cancun, Mexico

Simuler un tableau de Conversion de Devises

Message par TITANIUM »

Merci Bidouille!
C'est fait.
Lémi
LibreOffice 7.2.7.2
W10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25144
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re:Simuler un tableau de Conversion de Devises

Message par Dude »

Salut,

Sans doute faudrait-il nous donner un peu de matière en joignant l'ODB en question ?
TITANIUM a écrit :mais saisir une seconde fois [de 840 a 978, 11/11/20] devrait générer une erreur.
Et un mode d'emploi pas-à-pas afin d'arriver à l'erreur.
Avatar de l’utilisateur
TITANIUM
Membre OOrganisé
Membre OOrganisé
Messages : 83
Inscription : 03 févr. 2011 22:02
Localisation : Cancun, Mexico

Re: Simuler un tableau de Conversion de Devises

Message par TITANIUM »

Bonjour Bidouille,

Oui, je sais... Mais non.
Je n'ai pas réussi à avancer sur ce sujet. Ca aurait été avec le plus grand plaisir, si j'avais pu. Désolé!
Qu'est-ce que je fais? Sujet "verrouillé" / "impasse"? Comment traite-t-on un fil qui n'a pas pu aboutir?
Lémi
LibreOffice 7.2.7.2
W10
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 3929
Inscription : 06 oct. 2008 10:03

Re: Simuler un tableau de Conversion de Devises

Message par Oukcha »

Bonjour,

Si vous estimez que le sujet peut être clôturé, vous apposez la balise Image[Résolu] ; ainsi, les bénévoles sauront que ce sujet n'est plus à étudier.

Voir : https://forum.openoffice.org/fr/forum/v ... 490#p18490

Cordialement
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
Répondre