0

実行中のクエリに問題があります。次を満たすすべての従業員の 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 人です。私が間違っていることを誰かが知っていますか?

どんな助けでも感謝します、ありがとう。

4

1 に答える 1

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;
于 2012-11-29T16:48:47.033 に答える