SQL Server难以查询

tws*_*mes 4 sql t-sql sql-server aggregate-functions

我在写一个棘手的问题时遇到了问题.我有下表(作为例子)

fusionId | productId | departmentId
    1    |     1     |       1
    2    |     1     |       2
    3    |     2     |       1
    4    |     3     |       2
Run Code Online (Sandbox Code Playgroud)

我想要一个查询,我可以将两个传递departmentId给(1,2),并且查询productId只返回两个departmentId匹配相同的查询productId

所以例如,如果我发送了departmentId1和2,我会得到结果

productId
    1
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Mar*_*ith 11

SELECT productId 
FROM YourTable
WHERE departmentId IN (1,2)
GROUP BY productId 
HAVING COUNT(DISTINCT departmentId) = 2
Run Code Online (Sandbox Code Playgroud)

要么

SELECT productId 
FROM YourTable
WHERE departmentId = 1
INTERSECT
SELECT productId 
FROM YourTable
WHERE departmentId = 2
Run Code Online (Sandbox Code Playgroud)