从多个表中选择***产品组合重复产品并求和数量

Posted

技术标签:

【中文标题】从多个表中选择***产品组合重复产品并求和数量【英文标题】:Select Top product from multiple tables combine the duplicates products and SUM the quantity 【发布时间】:2016-10-04 11:26:31 【问题描述】:

我有多个销售列表表我想从每个销售列表表中选择每个表的***产品(更高的数量值)和“仅在其主表中验证的销售”然后选择所有表的***产品. 这是我到目前为止所做的:

  SELECT code_p, SUM(total) 
  FROM (   
  SELECT code_p as code_p, SUM(qty_p) as total from table1_sells_list d 
  INNER JOIN table1 p ON d.code_t1 = p.code_t1 
  WHERE valid_t3 = true 
  GROUP BY code_p, qty_p
-----------------------------------------------------------------------
  UNION ALL 
  SELECT code_p, SUM(qty_p) as total from table2_sells_list a
  INNER JOIN table2 c ON a.code_t2 = c.code_t2 
  WHERE valider_t3 = true 
  GROUP BY code_p, qty_p
-----------------------------------------------------------------------
  UNION ALL 
  SELECT code_p, SUM(qty_p) as total from table2_sells_list e
  INNER JOIN table3 f ON e.code_t3 = f.code_t3 
  WHERE valider_t3 = true 
  GROUP BY code_p, qty_p
      ) a 
  GROUP BY code_p, total
  ORDER BY code_p, total DESC

结果是这样的:

如您所见,有两行具有相同的产品,我想做的是合并重复的行并像这样对总和求和:

【问题讨论】:

您不想查看 表之间的销售额?此外,示例数据将有助于阐明您在做什么。 只需从最后一个GROUP BY code_p 中删除total @klin 这很好用,但我必须将查询顶部的字段名称更改为 totat 以外的其他名称,否则会抛出 must appear in the GROUP BY clause 错误。谢谢 【参考方案1】:

您可以将整个查询包装在一个

SELECT code_p, sum(sum)
FROM ( <your original query> ) x
GROUP BY code_p;

【讨论】:

谢谢你,klin 在他的评论中我猜想这里的东西很容易和更快,但你的概念很有帮助,谢谢

以上是关于从多个表中选择***产品组合重复产品并求和数量的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL - 将具有多个重复值的行组合起来,然后删除重复项

在 Swift 中过滤对象数组并求和它们的属性

因为使用 BaseAdapter 在网格视图中重复 textview 产品计数器

如何把EXCEL表中的数据进行按多个条件进行分类汇总,并统计出个数,并求和?

按一列分组,对另一个 w 求和。重复条目(包括特定产品的交易的总交易价值)

需要根据woocommerce中产品的个别数量更改价格[重复]