mon souhait est que si je dois enregistrer un nouveau montant par exemple en $, que je prenne
le denier montant en $ enregistré ds la bdd et l'addition avec le nouveau.
Tu parles de "dernier enregistrement" => Il faut donc horodater les insertions, on fait ça avec une colonne DATETIME
Tu veux faire un cumul ? Généralement on n'enregistre pas des résultats de calcul en bdd, mais les données "primaires". Ensuite tu affiches le résultat du calcul au besoin.
operation
---------------
id -- auto-incrément
amount -- montant
currency_id -- devise, clef étrangère vers currency.id
created_at -- hododatage création
currency
---------------
id
code -- Euro = EUR
number -- Euro = 978
name -- Euro
symbol -- Euro = €
Montants cumulés par devise :
SELECT ALL
c.code AS "Code devise", c.name AS "Devise",
SUM(o.amount) AS "Montant cumulé", MAX(o.created_at) AS "Dernière insertion"
FROM operation AS o
INNER JOIN currency AS c ON o.currency_id = c.id
GROUP BY 1, 2
;
Partager