从多个表中选择***产品组合重复产品并求和数量
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 - 将具有多个重复值的行组合起来,然后删除重复项
因为使用 BaseAdapter 在网格视图中重复 textview 产品计数器
如何把EXCEL表中的数据进行按多个条件进行分类汇总,并统计出个数,并求和?