3

Products と Suppliers の 2 つのテーブルがあります。SupplierID は製品テーブルの外部キーです。国、supplierID、会社名をすべて含むテーブルをサプライヤ テーブルから作成する必要があります。次に、各サプライヤが持っている製品の数を取得する必要があります。次のクエリを試しました。

SELECT DISTINCT s.country, 
                s.supplierid, 
                s.companyname, 
                (SELECT Count(DISTINCT productid) AS 
                        "Number of Products Supplied" 
                 FROM   products 
                        INNER JOIN suppliers 
                                ON p.supplierid = s.supplierid) AS 
                "Number of products Supplied" 
FROM   suppliers s, 
       products p 
WHERE  ( s.country = 'usa' 
          OR s.country = 'uk' ) 
       AND s.supplierid = p.supplierid 

しかし、各サプライヤーから供給された製品の数ではなく、製品の総数を取得しています。何か案は?

4

1 に答える 1

3
SELECT s.country, s.supplierid, s.companycame, Count(*) AS Number_of_Products_Supplied
FROM suppliers s
 JOIN products p ON s.supplierid=p.supplierid
WHERE s.country IN ('usa', 'uk')
GROUP BY s.country, s.supplierid, s.companycame

私があなたの質問を理解していれば、それはあなたが望むことをするべきだと思います。

于 2013-02-20T02:40:09.550 に答える