如何在SQL中选择交叉表?

Vit*_*kin 2 sql sql-server

我需要帮助构建SQL查询.

我有4个表:卖家,商品,项目和销售.

卖家表有以下结构:

SellerID (int) PK
SellerName (nvarchar)
SellerStatus (int)
SellerCity (nvarchar)
Run Code Online (Sandbox Code Playgroud)

产品:

GoodsID (int) PK
GoodsTitle (nvarchar)
GoodsColor (nvarchar)
GoodsSize (int)
GoodsCity (nvarchar)
Run Code Online (Sandbox Code Playgroud)

项目:

ProjectID (int) PK
ProjectTitle (nvarchar)
ProjectCity (nvarchar)
Run Code Online (Sandbox Code Playgroud)

销售:

SellerID (int)
GoodsID (int)
ProjectID (int)
Price (int)
Run Code Online (Sandbox Code Playgroud)

我需要获得卖家ID,它将相同的商品分发给所有项目.

任何人都可以帮我查询?我用的是MSSQL.

提前致谢

Jag*_*mag 6

老实说,我不确定我是否完全理解了所有的要求(我确实完成了所有的评论,但之后有点困惑).但是,如果你想要卖掉至少1个GOOD的所有卖家到所有项目,那么我认为下面可能会给你这个.

你可以尝试一下,看看是否可以吗?我现在真的无法访问数据库来试用它

此外,如果它不符合我错过的一些要求,请随意详细说明,也许使用示例数据 - 这可能使所有人都更简单.

SELECT SellerID FROM SALES
GROUP BY SellerID, GoodsID
HAVING COUNT(ProjectID) = SELECT count(ProjectID) FROM Projects
Run Code Online (Sandbox Code Playgroud)