【发布时间】:2012-11-29 08:11:34
【问题描述】:
我在 SQLPLUS 中的一个查询有问题。
我被要求显示满足以下限制的所有供应商的 SuppCode、SuppName 和 PostCode:他们提供的每个库存商品的价格都高于所有库存商品的平均价格。
我正在使用的三个表是;供应商、库存和 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 条记录,所以我的查询是错误的,虽然我不明白为什么。
任何帮助将不胜感激。
【问题讨论】:
标签: sqlplus