mysql - MYSQL 中多对多关系的 SUM()

标签 mysql sql

我有多对多关系的表 stanjetransakcija,如图所示:

tables

我需要一个 MYSQL 子句,返回 stanje 中由连接到给定的每个 transakcija.iznosSUM() 连接的所有行斯坦杰 .

到目前为止我已经尝试过

select SUM(t.iznos) 
    from transakcija t 
where transakcija_id in 
    (select transakcija_id from stanje_transakcija where stanje_id = ?)

在给定 stanje_id 时正确返回 SUM(),但不知道如何继续,因为我需要 stanje< 中所有行的总和.

编辑:添加示例输出

------------------------------------
| stanje_id | naziv | SUM(t.iznos) |
------------------------------------
|     1     |   a   |     125.2    | 
|     2     |   b   |     -42.2    |
------------------------------------

最佳答案

如果我理解正确,您需要在 transakcija_id 列和 stanje_id 列的表中使用 JOIN

根据您的预期结果,您可以尝试将 SUMGROUP BY 一起使用

select t2.stanje_id,t2.naziv,SUM(t.iznos) 
from transakcija t 
INNER JOIN stanje_transakcija t1 on t.transakcija_id = t1.transakcija_id
INNER JOIN stanje t2 on t2.stanje_id = t1.stanje_id
GROUP BY t2.stanje_id,t2.naziv

关于mysql - MYSQL 中多对多关系的 SUM(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51721931/

相关文章:

本地网络上的 MySQL 远程访问出现身份验证错误

mysql - Ruby on Rails MySQL 选择页面未定义方法 `each' 为 nil :NilClass

mysql - Datediff & Group By 不起作用?

mysql - 如何在 MySQL 中正确索引嵌套集?

mysql - Sailsjs Mysql ORM 对同一个表字段进行多次查询

python - 没有从 sql 查询 select python 中获得预期结果

mysql - 我可以使用连接查询来执行此操作吗?

Php脚本运行正常,但没有在数据库中创建表

sql - 如何设计一个数据库来存储不同分辨率的OHLC时间序列?

MySQL LEAST() 具有任意数量的参数;表中最长的匹配