为什么mysql sum查询只返回一行?

ergxz8rk  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(431)

我试图创建一个mysql查询来返回数据库中每个帐户的所有对账单余额之和。查询如下所示:

SELECT SUM(balance), handle FROM statement_versions
INNER JOIN statements ON statement_versions.statement_id = statements.id
INNER JOIN accounts ON statements.account_id = accounts.id;

当我这样做时,它只返回一行,其中有一个合计余额和一个帐户(id为1的帐户)。我要的是返回所有帐户及其汇总报表余额。我该如何做到这一点?

mrwjdhj3

mrwjdhj31#

你可能需要一些东西来分组 handle (我想这和帐号id有关吧?),否则mysql会的 SUM 从中选择的所有值 JOIN . 添加 GROUP BY 子句使 SUM 发生在 GROUP BY . 将查询更改为:

SELECT SUM(balance), handle FROM statement_versions
INNER JOIN statements ON statement_versions.statement_id = statements.id
INNER JOIN accounts ON statements.account_id = accounts.id
GROUP BY handle;

如果 handle 与…无关 accounts.id 你想把结果按 accounts.id ,将查询更改为:

SELECT SUM(balance), accounts.id FROM statement_versions
INNER JOIN statements ON statement_versions.statement_id = statements.id
INNER JOIN accounts ON statements.account_id = accounts.id
GROUP BY accounts.id;

相关问题