Sql 获取供应商名称,其中提供的所有项目均高于平均水平

Sql 获取供应商名称,其中提供的所有项目均高于平均水平,sql,oracle,Sql,Oracle,我有两张桌子 SUPPLIERS( SUPPCODE, SUPPNAME, STREET, TOWN, COUNTRY, POSTCODE, TELNO, FAXNO) STOCKS( STOCKNO, STORECODE, DESCRIPTION, QUANTITY, UNITS, REORDER, PRICE, SUPPCODE) 我想找到供应商的名称,其中他们

我有两张桌子

SUPPLIERS(
    SUPPCODE,
    SUPPNAME,
    STREET,
    TOWN,
    COUNTRY,
    POSTCODE,
    TELNO,
    FAXNO)

STOCKS(
    STOCKNO,
    STORECODE,
    DESCRIPTION,
    QUANTITY,
    UNITS,
    REORDER,
    PRICE,
    SUPPCODE)
我想找到供应商的名称,其中他们供应的所有物品的价格都高于表中所有物品的平均价格

我知道我可以找到高于平均水平的所有项目使用

SELECT  S1.SuppCode, S1.SuppName, S1.PostCode
FROM    Suppliers S1, Stocks S2
WHERE   Price > (
    SELECT  AVG(Price)
    FROM    Stocks
    )
AND S1.SuppCode = S2.SuppCode;
但我不知道如何确保供应商的每一项都高于平均水平

平均值是

AVG(PRICE)                                                                      
----------                                                                      
5.14411765   
桌子看起来像这样

SQL> select suppcode, price
  2  from stocks
  3  order by suppcode
  4  ;

SUPPCO      PRICE                                                               
------ ----------                                                               
S1           2.85                                                               
S1           2.85                                                               
S1           2.14                                                               
S1            .49                                                               
S1            .98                                                               
S1           1.59                                                               
S1           1.84                                                               
S1           1.35                                                               
S2           5.15                                                               
S2           2.98                                                               
S2          11.38                                                               

SUPPCO      PRICE                                                               
------ ----------                                                               
S2          12.85                                                               
S3           2.57                                                               
S3           4.95                                                               
S3           1.89                                                               
S3           4.11                                                               
S3           8.58                                                               
S3           1.97                                                               
S3            .81                                                               
S3           6.19                                                               
S3           3.65                                                               
S4           4.83                                                               

SUPPCO      PRICE                                                               
------ ----------                                                               
S4           2.42                                                               
S4            .22                                                               
S4            .45                                                               
S4            .47                                                               
S4            .42                                                               
S4           2.15                                                               
S4           3.48                                                               
S5           7.99                                                               
S5           7.85                                                               
S5           6.47                                                               
S6          23.99                                                               

SUPPCO      PRICE                                                               
------ ----------                                                               
S6          32.99                                                               
考虑到这一点,我想得到S5和S6

Oracle 11g R2架构设置:

问题1:

:

Oracle 11g R2架构设置:

问题1:


如果我理解正确,他想知道只销售高于平均价格的商品的供应商的名称,作为下次的建议,每当您有SQL问题时,请提供SQLFIDLE数据。只需转到并创建一个包含数据的表。然后在问题中发布链接。这将有助于我们这些试图回答您的问题的人在您的数据上向您展示查询是如何工作的。如果我正确理解了这个问题,他想知道只销售高于平均价格的商品的供应商的名称,作为下次的建议,每当您有SQL问题时,请提供一个SQLFIDLE数据。只需转到并创建一个包含数据的表。然后在问题中发布链接。这将有助于尝试回答您的问题的我们向您展示查询是如何工作的。
CREATE TABLE SUPPLIERS(
    SUPPCODE NUMBER(5,0) PRIMARY KEY,
    SUPPNAME VARCHAR2(20),
    STREET   VARCHAR2(20),
    TOWN     VARCHAR2(20),
    COUNTRY  VARCHAR2(20),
    POSTCODE VARCHAR2(20),
    TELNO    NUMBER(11,0),
    FAXNO    NUMBER(11,0)
);

CREATE TABLE STOCKS(
    STOCKNO     NUMBER(5,0) PRIMARY KEY,
    STORECODE   VARCHAR2(20),
    DESCRIPTION VARCHAR2(20),
    QUANTITY    NUMBER(5,0),
    UNITS       NUMBER(5,0),
    REORDER     NUMBER(5,0),
    PRICE       NUMBER(12,2),
    SUPPCODE    NUMBER(5,0),
    FOREIGN KEY ( SUPPCODE ) REFERENCES SUPPLIERS ( SUPPCODE )
);
SELECT SUPPCODE
FROM   SUPPLIERS s
WHERE  NOT EXISTS (SELECT 1
                   FROM   STOCKS k
                   WHERE  s.SUPPCODE = k.SUPPCODE
                   AND    price <= (SELECT AVG( price ) AS avg_price FROM STOCKS)
                  )