2010-10-23 4 views
1

J'ai une question que le titre, je veux obtenir les produits qui sont apparus dans chaque entrepôt, Je ne sais pas quand je pensais depuis longtemps, je trouve que je suis tellement beetleheaded,Comment obtenir les produits dont tous les entrepôts existent?

Thare sont trois tables dans ma sql base de données du serveur:

produit ( productID, nom , modèle, taille , couleur )

Entrepôt ( warehouseID,Nom, adresse )

Inventaire ( warehouseID, productID, quantité )

J'espère que quelqu'un me aider à jeter un oeil et peut écrire le code SQL obtenir le résultat

Je vous remercie.

Répondre

3

Utilisez un GROUP BY pour compter le nombre d'entrepôts de chaque produit. Acceptez les lignes pour lesquelles ce nombre est égal au nombre total d'entrepôts.

SELECT productID 
FROM Inventory 
WHERE quantity > 0 
GROUP BY productID 
HAVING COUNT(*) = (SELECT COUNT(*) FROM Warehouse) 

Cela suppose que (productID, warehouseID) est unique dans la table d'inventaire. Si ce n'est pas le cas, utilisez COUNT(DISTINCT warehouseID) au lieu de COUNT(*).

+0

ouais, j'avais vu le bon résultat, merci pour votre réponse – JejuneWolf

Questions connexes