【问题标题】:I want to aggregate the information on two different tables我想在两个不同的表上汇总信息
【发布时间】:2017-11-15 17:40:20
【问题描述】:

我有两个如下表,我想得到类似的结果

第一个表 ->

name    properties  piece
A            X       50
B            Y       40
A            Z       20
B            Y       10
A            X       15

第二张表 ->

name    properties  piece
A            X       10
B            Y       10
A            Z       10
B            Y       15

我想要的结果

name    properties  piece
A            X       55
A            Z       10
B            Y       40

计算 A-X (50+15-10=5)

【问题讨论】:

  • 你的问题是什么?你试过什么?我们不是在做你的工作,你必须提供一些想法。
  • 你的意思是第一个表要加,第二个表有匹配的时候要减去?
  • 最后一行结果不符合您提供的逻辑不应该是 25 吗?
  • @HimBromBeere 很明显,这不是真的 :-(
  • 您这里没有 PRIMARY KEY,这可能有问题。

标签: mysql sql sqlite


【解决方案1】:
select name, properties, sum(piece) from (
  select name, properties, piece from first_table 
  union all 
  select name, properties, -1 * piece from second_table
) a 
group by name, properties

这样就可以了

【讨论】:

  • 你打败了我。当您添加解释时,您的答案会更好
  • @RaymondNijland 我也是这么想的。但是对于已经不言自明的查询无法得到更好的解释。
猜你喜欢
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
相关资源
最近更新 更多