在下面的示例中获取所需信息时遇到问题。
我的数据:
Id AnotherId Status
-- --------- ------
1 3 new
2 3 old
3 5 new
4 6 new
5 11 old
6 11 old
7 55 new
8 55 new
我正在寻找与众不同的AnotherId
,其中每个status实例='New'
所以我的结果将如下所示:
5
6
55
这将为我提供大部分帮助,但我需要所有“新”状态记录:
select AnotherId
from MyData
group by AnotherId
having count(distinct Status) = 1
我似乎无法完全获得所需的东西。任何帮助将不胜感激!
答案 0 :(得分:1)
您可以使用group by
子句:
select AnotherId
from table t
group by AnotherId
having min(status) = max(status) and min(status) = 'new';
答案 1 :(得分:1)
如果您想要的只是另一个状态为new的另一个ID的独特列表,那么您应该可以到达那里:
SELECT DISTINCT [AnotherId]
from [MyData]
where [Status] = 'new'
and [AnotherId] NOT IN (SELECT [AnotherId] FROM [MyData] WHERE [Status] <> 'new' AND [AnotherId] IS NOT NULL)