我想总结从过去12个月前到现在每个月的金额。 那么如何编写MySQL查询,我对MySQL这么差。
select sum(amount) as monthly_expense from tb_expense
where between last 12 and now();
答案 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);
请注意,在此配方中,第一个月和最后一个月将是部分的。这就是你的问题特别要求的。