2017-03-31 251 views
0

请帮我组成这个查询。SQL Server 2008,条件选择查询

我有一个表是这样的:

Row Product Role    
------------------- 
1 ABC-1  Self 
2 ABC-2  Self 
3 ABC-2  Joint 
4 ABC-3  Self 
5 ABC-3  Joint 
6 ABC-4  Self 

我想去的地方只作用是自我获取只有那些产品行。在从给定的表换句话说,SQL查询应该只输出行1 & 6.输出应该是这样的

Row Product Role    
------------------- 
1 ABC-1  Self 
6 ABC-4  Self 

谢谢

+0

谢谢。我有一个查询运行一堆连接获取数据,这将是子查询。某处我错过了连接,并且没有检索任何数据。 – suji

回答

1

您可以使用NOT EXISTS

SELECT * 
FROM dbo.YourTable t 
WHERE NOT EXISTS(SELECT 1 FROM dbo.YourTable 
       WHERE Product = t.Product 
       AND Role <> 'Self'); 
+0

@TimSchmelter哦,当然这就是我说的;) – Lamak

1

你可以使用WHERE NOT EXISTS为此:

Select * 
From YourTable T 
Where Not Exists 
(
    Select * 
    From YourTable T1 
    Where T.Product = T1.Product 
    And  T1.[Role] <> 'Self' 
) 
And T.[Role] = 'Self'