MySQL数量从过去12个月到本月的每个月

时间:2018-04-02 01:15:43

标签: mysql sql

我想总结从过去12个月前到现在每个月的金额。 那么如何编写MySQL查询,我对MySQL这么差。

select sum(amount) as monthly_expense from tb_expense 
where between last 12 and now();

2 个答案:

答案 0 :(得分:0)

您尚未提及表格格式以及哪个字段在表格中存储日期。但是对于您的功能,您需要有一个列存储每条记录的日期。假设您有一列expense_date,请尝试:

SELECT SUM(amount) AS monthly_expense FROM tb_expense 
WHERE tb_expense.date > (DATE_SUB(CURDATE(), INTERVAL 12 MONTH))

如果您的表数据不同,请告诉我们。

答案 1 :(得分:0)

你基本上想要:

select sum(amount) as monthly_expense
from tb_expense
where datecol >= curdate() - interval 1 year;

datecol是将相关日期存储在表格中的任何列。

如果您每个月都需要这个,请使用group by

select year(datecol), month(datecol), sum(amount) as monthly_expense
from tb_expense
where datecol >= curdate() - interval 1 year
group by year(datecol), month(datecol);

请注意,在此配方中,第一个月和最后一个月将是部分的。这就是你的问题特别要求的。