我需要帮助构建SQL查询。
我有4个表:卖家,商品,项目和销售。
卖家表有以下结构:
SellerID (int) PK
SellerName (nvarchar)
SellerStatus (int)
SellerCity (nvarchar)
商品:
GoodsID (int) PK
GoodsTitle (nvarchar)
GoodsColor (nvarchar)
GoodsSize (int)
GoodsCity (nvarchar)
项目:
ProjectID (int) PK
ProjectTitle (nvarchar)
ProjectCity (nvarchar)
销售:
SellerID (int)
GoodsID (int)
ProjectID (int)
Price (int)
我需要获得卖家ID,它将相同的商品分发给所有项目。
有人可以帮我查询吗? 我使用MSSQL。
提前致谢
答案 0 :(得分:6)
老实说,我确定我是否完全理解了所有的要求(我确实完成了所有的评论,但之后有点困惑)。但是,如果你想要卖掉至少1个GOOD的所有卖家到所有项目,那么我认为下面可能会给你这个。
你可以尝试一下,看看它是否有效?我现在真的无法访问数据库来试用它
另外,如果它没有达到我错过的一些要求,请随意详细说明,也许使用示例数据 - 这可能使所有人都更简单。
SELECT SellerID FROM SALES
GROUP BY SellerID, GoodsID
HAVING COUNT(ProjectID) = SELECT count(ProjectID) FROM Projects
答案 1 :(得分:0)
试试这个,让我知道它是否是正确的方向:
select SellerID
from Sales s1 join Goods g1 on (GoodsID)
where not exists
(select SellerID, GoodID
from Sales s2
join Goods g2 on (GoodsID)
left join Sales on (SellerID, GoodsID)
where s1.Seller = s2.Seller and
g1.GoodsID = g2.GoodsID and
Sales.ProjectID is null)