SQLPLUSのクエリの1つに問題があります。
次の制約を満たすすべてのサプライヤに対して、SuppCode、SuppName、およびPostCodeを表示するように依頼されました。サプライヤが提供するすべての在庫アイテムの価格は、すべての在庫アイテムの平均よりも高くなっています。
私が使用している3つのテーブルは次のとおりです。サプライヤーと在庫およびSupplyItems。
サプライヤテーブルは次のようになります。
SUPPCODE SUPPNAME STREET TOWN COUNTRY POSTCODE TELNO FAXNO
8つの個別のサンプルデータ(8つのサプライヤ)があり、ヌルフィールドはありません。
Stocksテーブルは次のようになります。
ITEMNO STORECODE ITEMDESC QUANTITY UNITS REORDER PRICE SUPPCODE
40個の個別のサンプルデータ(40個の在庫アイテム)があり、ヌルフィールドはありません。
SupplyItemsテーブルは次のようになります。
SUPPCODE CATNO STOCKNO PRICE
60個の個別のサンプルデータ(60個の供給アイテム)があり、ヌルフィールドはありません。
私は次のクエリを書きました:
select distinct SU.SuppCode, Su.SuppName, PostCode
from Suppliers SU
LEFT JOIN SupplyItems SI ON SU.SuppCode = SI.SuppCode
where Price >
(select AVG(Quantity) from Stocks ST
where SI.StockNo = ST.StockNo);
次の出力(4つの値)が得られます。
SUPPCODE SUPPNAME POSTCODE
S6 BSS LTD. B10 8SS
S2 ITX LTD. IT5 3TX
S3 FFG LTD. FY9 6FG
S4 OMM LTD. OM5 4MM
これで、出力に2つまたは3つのレコードが含まれるはずであることがわかったので、理由はわかりませんが、クエリが間違っています。
どんな助けでもいただければ幸いです。