SQL查询麻烦(带约束)

时间:2012-11-29 16:35:17

标签: oracle sqlplus

我正在运行的查询出现问题。我想显示满足以下条件的所有员工的Empcode,Empname和邮政编码:他们销售的每个库存商品的价格都高于所有库存商品的平均价格。

所以这是我的问题:

select distinct SU.empCode, SU.empName, SU.PostCode
from Suppliers SU, Stocks ST
where ST.Price >= (select AVG(Price) from Stocks ST)

我让所有员工都回来了(总共6名),但正确答案是2名员工。 有人知道我做错了吗?

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

这应该有效

select empCode, empName, PostCode
  from (select SU.empCode, SU.empName, SU.PostCode, min(st.Price) over (partition by su.empcode) min_price,
               avg(st.price) over () avg_price
          from Suppliers SU, Stocks ST
         where SU.empcode = ST.empcode)
 where min_price > avg_price;