SQL SERVER关于集合成员测试中子查询的问题

select 货品编码 from 订单信息 as a where 编码 in
(select 货品编码 from 订单信息 as a where
(select SUM(数量) from 订单信息 as b where a. 货品编码=b.货品编码)>10)
谁能讲解这段语句

一步步看:
先看最后一句的子查询:
(select 货品编码 from 订单信息 as a where (select SUM(数量) from 订单信息 as b where a. 货品编码=b.货品编码)>10)。
意思是:查找订单信息表中货品编码所对应数量总和大于10的货品编码的集合。
那么,父查询的条件:
where 编码 in (select 货品编码 from 订单信息 as a where (select SUM(数量) from 订单信息 as b where a. 货品编码=b.货品编码)>10)的意思就是要查找编码在订单信息表中货品编码所对应数量总和大于10的货品编码的集合中的数据。
最后将整个语句整合起来,就是“查询订单信息表中总数量大于10的货品编码”。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-02
因为订单信息表被外层查询和子查询持续使用,所以定义了不同的别名。此句意思为:查询订单信息表中的货品编码以及本货品的总供应量。
第2个回答  2011-11-02
不懂的
相似回答