0

次のテーブルがあります。

   VENDOR:          PRODUCT:           ITEM:             STORE:
-  VENDOR_ID     -  PRODUCT_ID      -  ITEM_ID        -  STORE_ID
-  VENDOR_NAME   -  PRODUCT_DESC    -  STORE_ID       -  STORE_NAME
                 -  VENDOR_ID       -  PRODUCT_ID     -  STORE_LOCATION
                                    -  ITEM_PRICE

VENDOR テーブルには製品のベンダーに関する情報が格納され、PRODUCT テーブルには製品に関する情報が格納されます。ITEM テーブルは基本的に店舗の在庫であり、在庫のある各アイテムのレコードがあります。商品在庫に同じ商品が複数ある場合、ITEM_ID は異なりますが、ITEM_ID と PRODUCT_ID が主キーです。STOREにはストア情報が保存されます:D

商品の品揃えが最も多い店舗に商品を提供しているベンダーの名前をリストしたいと考えています。したがって、COUNT 関数を使用して、各 STORE の ITEM レコード内の個別の PRODUCT_ID の数をカウントする必要があると思います。

これを始める方法がよくわかりません。少し助けていただければ幸いです。

これは私がこれまでに持っているものです:

SELECT DISTINCT VENDOR.VENDOR_NAME AS [Vendor Name]
FROM VENDOR, PRODUCT, ITEM, STORE
WHERE STORE.STORE_ID 
IN (SELECT STORE_ID 
FROM ITEM);

これはすべてのベンダーを返しますが、そこに COUNT または MAX 関数を追加する必要がありますが、それを行う方法がわかりません。どんな助けでも大歓迎です。

4

3 に答える 3

0
SELECT V.VENDOR_NAME, COUNT(I.PRODUCT_ID)
FROM ((VENDOR AS V 
INNER JOIN PRODUCT AS P ON V.VENDOR_ID = P.VENDOR_ID) 
INNER JOIN ITEM AS I ON P.PRODUCT_ID = I.PRODUCT_ID) 
INNER JOIN STORE AS S ON I.STORE_ID = S.STORE_ID 
WHERE S.STORE_NAME = 'Store Name"
GROUP BY V.VENDOR_NAME
ORDER BY COUNT(I.PRODUCT_ID) DESC

上記のクエリは、ベンダーの名前と製品 ID の数を取得します。特定の店舗を指定できるように、そこに WHERE 句を入れました。すべての店舗が必要な場合は、WHERE を削除します。

于 2013-10-21T13:56:39.547 に答える