Mysql查询求和和减法求和表

标签 mysql sql sum sql-order-by subtraction

我需要这个查询

表格基础:

Id name
1  ex1
2  ex2
3  ex3

表A

ExtId  p
1      10
1      20
2      40
3      10
3      10

表B

ExtId  p
1      10
1      5
3      5
3      5

表C

ExtId  p
1      10
2      10
2      20
3      40

输出:

表 A.p + 表 B.p - 表 C.p:

id   p
1    35
2    10
3   -10

最佳答案

select B1.id, coalesce(Q1.p,0) + coalesce(Q2.p,0) - coalesce(Q3.p,0) as p
from Base B1
left join 
    (
    select ExtId, sum(p) as p
    from TableA
    group by ExtID
    ) Q1
  on B1.id = Q1.ExtID
left join 
    (
    select ExtId, sum(p) as p
    from TableB
    group by ExtID
    ) Q2
  on B1.id = Q2.ExtID
left join 
    (
    select ExtId, sum(p) as p
    from TableC
    group by ExtID
    ) Q3
  on B1.id = Q3.ExtID

关于Mysql查询求和和减法求和表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40125742/

相关文章:

php - 取出数组元素

php - 无法使用登录功能

php - MySQL - 获得 Markdown 产品

sql查询如何删除具有5列相同的行并在Postgres中保留1列

mysql - 将表 1 的单位列更新为表 2

来自两个连接表和多行的 MySQL 总和 - 需要取出全部或所有行

mysql - 在 Rails 中的多个数据库之间切换而不中断事务

c# - 使用逻辑运算符的 SQL 搜索

sql - select * from table_name where 列如 '&nbsp'

c - 两个数组的总和