【发布时间】:2018-04-02 01:15:43
【问题描述】:
我想总结从过去 12 个月前到现在每个月的金额。 那么MySQL查询怎么写,我对MySQL很穷。
select sum(amount) as monthly_expense from tb_expense
where between last 12 and now();
【问题讨论】:
我想总结从过去 12 个月前到现在每个月的金额。 那么MySQL查询怎么写,我对MySQL很穷。
select sum(amount) as monthly_expense from tb_expense
where between last 12 and now();
【问题讨论】:
您尚未提及您的表格格式以及表格上存储日期的字段。但是对于您的功能,您需要有一列存储每条记录的日期。假设你有一个专栏 expense_date 试试这个:
SELECT SUM(amount) AS monthly_expense FROM tb_expense
WHERE tb_expense.date > (DATE_SUB(CURDATE(), INTERVAL 12 MONTH))
如果您的表格数据不同,请告诉我们。
【讨论】:
你基本上想要:
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);
请注意,在此公式中,第一个月和最后几个月将是部分的。这就是您的问题具体要求的内容。
【讨论】: