我在 SQLPLUS 中的一个查询有问题。
我被要求显示满足以下限制的所有供应商的 SuppCode、SuppName 和 PostCode: 他们提供的每个库存商品的价格都高于所有库存商品的平均价格。
我正在使用的三张表是;供应商、库存和 SupplyItems。
供应商表如下所示:
SUPPCODE SUPPNAME STREET TOWN COUNTRY POSTCODE TELNO FAXNO
有 8 个单独的样本数据(8 个供应商),并且没有空字段。
股票表如下所示:
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 条记录,所以我的查询是错误的,尽管我不明白为什么。
任何帮助,将不胜感激。