2 votes

Somme cumulative dans la vue mysql

J'ai une table contenant des valeurs pour chaque mois de différentes années.

Entrées :
entry_id
entry_date
entry_amount

Maintenant je veux une vue qui contient toutes les valeurs d'entrée, et la somme cumulée des montants de l'année en cours.

Vue_entries_sum :
entry_id
entry_date
entry_amount
entry_cumulative_yearly_sum

où entry_cumulative_yearly_sum = SOMME(toutes les entrées à partir du 01 janvier de l'ANNÉE(entry_date) jusqu'à entry_date)

Merci, Martin

3voto

Martin Points 125

La solution trouvée :

SELECT e1.*, SUM(e2.entry_amount) AS cum_sum 
FROM Entry e1, Entry e2
WHERE 
  e2.account_idfk = e1.account_idfk AND
  e2.entry_period_end_date BETWEEN MAKEDATE(YEAR(e1.entry_period_end_date),1) AND e1.entry_period_end_date GROUP BY e1.entry_id

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X