2013-03-20 83 views
1

我試圖寫一個查詢,列出所有在德克薩斯州從單一商店購買商品的顧客。SQL Server如何查找從每家商店購買產品的客戶?

因此,這裏有4個表及其屬性:

Customers: 
customerID, CustomerName 

Purchases: 
CustomerID, ProductID 

StoresInventory: 
StoreID, ProductID 

StoreLocation: 
StoreID, State 

我可以返回得克薩斯州的商店的查詢,但我不知道如何檢查,如果客戶已經購買的產品從所有這些商店。另外,我不能使用countaggregation。 任何人都知道如何做到這一點?

+1

什麼具有u試過嗎? – DevT 2013-03-20 04:11:29

+0

那麼,我已經嘗試使用子查詢,列出德克薩斯州的商店,但是,我不知道如何完全使用這個子查詢返回結果,只有當它匹配。我寫過的查詢返回從德州至少一家商店購買的所有客戶,這是不正確的。 – user2189190 2013-03-20 05:13:04

回答

1

除非ProductID對於商店是唯一的;您想要的數據不會存儲在架構中。您知道客戶購買什麼產品和什麼商店存儲這些產品,但您沒有存儲客戶從哪個商店購買產品。

+0

是的,假設ProductID對於商店是唯一的。因此,您可以通過productID獲取商店信息。對不起,我試圖簡化這個例子。 – user2189190 2013-03-20 05:05:01

1

嘗試這樣:

Select c.CustomerId From Customers c 
Inner Join Purchases p on C.CustomerId=p.CustomerId 
Inner Join StoresInventory s on s.ProductID=p.ProductID 
Group By c.CustomerId 
Having COUNT(Distinct s.StoreId)=(Select Count(Distinct StoreId) From StoreLocation Where State='Texas') 
+0

如何在不使用計數的情況下執行此操作? – user2189190 2013-03-20 05:13:39

相關問題