我有一个包含两个表的数据库,expense
和user
。 费用
表为:
EXPENSE
id, int(11)
cost, double
category_fk, int(11)
date_time, datetime
comment, varchar(1000)
user_fk, int(11)
大约四年来,我一直使用以下SQL查询按月对单个用户的费用进行分组,并报告每月的总费用:
SELECT
MONTH(date_time),
YEAR(date_time),
SUM(cost)
FROM expense
JOIN `user`
ON `user`.id = expense.user_fk
WHERE `user`.id = 1234
GROUP BY
date_time,
MONTH(`date_time`),
YEAR(`date_time`)
ORDER BY `date_time` ASC
现在,这个查询不再起作用了。 特别是,查询groupby
不正确。 相反,每个事务返回时不包含该月的金额。
唯一改变的是,在本地,我升级了MySQL,因为我有了新的macOS。 然而,这是一个web应用程序,MySQL版本,至少据我所知,在服务器上没有改变,尽管它可以改变,因为它是一个共享的托管服务。
我不知道是什么导致了这一切。 如有任何提示,将不胜感激。
group BY date_time
使它分别返回每一行,因为我相信每一行都有唯一的date_time
值,所以不会发生分组。 尝试将其更改为
GROUP BY
MONTH(`date_time`),
YEAR(`date_time`)
它应该能起作用