
完整sql语句
select *from `采购订单序时簿` aWHERE a.`供应商` in (SELECT b.供应商 from(select 供应商,物料名称,规格型号,sum(数量) as 采购总量from `采购订单序时簿`GROUP BY 供应商,物料名称,规格型号) bWHERE 采购总量>5000)
一、源数据结构

二、依据指定的条件聚合汇总数量列数据之和
汇总统计出同一家供应商下同一种物料总的采购量。
#汇总统计出同一家供应商下同一种物料总的采购量select 供应商,物料名称,规格型号,sum(数量) as 采购总量from `采购订单序时簿`GROUP BY 供应商,物料名称,规格型号

三、依据指定的条件聚合汇总数量列数据后再筛选
在上面的结果里,再筛选获取采购总量超过5000的供应商列表。
#在上面的结果里,再筛选获得采购总量超过5000的供应商列表SELECT b.供应商 from(select 供应商,物料名称,规格型号,sum(数量) as 采购总量from `采购订单序时簿`GROUP BY 供应商,物料名称,规格型号) bWHERE 采购总量>5000

四、获取聚合函数之外的字段信息
到此,要获取查询语句中聚合函数之外的字段信息,就相对好理解了。在上面两步的查询过程后,再进一步提出要求:在源表中提取出采购总量超过5000的全部订单的全部信息。
select *from `采购订单序时簿` aWHERE a.`供应商` in (SELECT b.供应商 from(select 供应商,物料名称,规格型号,sum(数量) as 采购总量from `采购订单序时簿`GROUP BY 供应商,物料名称,规格型号) bWHERE 采购总量>5000)

五、总结
1、子查询语句应该放置在括号中;
2、除非主查询语句有多个字段用于与子查询比较,否则子查询的select子句里应该只有一个字段;
3、返回多条记录的子查询只能与多值操作符,如in关键字,配合使用;
4、将一个查询的结果作为查询对象给另一个查询时,则该查询需要重命名。

2021.3.14
今天是一个特别的日子,愿你有爱也有被爱。
文章转载自数据管理idata,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




