查询未返回预期输出且不存在

问题描述 投票:0回答:1

我想显示那些没有 D1 的事件。

这是表架构

Create table #tmp (ID int,stopid int,Events nvarchar(10))

Insert into #tmp    values (1,1,'AF')
Insert into #tmp    values (1,1,'X1')
Insert into #tmp    values (1,2,'D1')
Insert into #tmp    values (1,2,'AF')

这是我正在尝试的逻辑。

SELECT DISTINCT s.ID
FROM #tmp s
WHERE 
NOT EXISTS (
    SELECT 1
    FROM #tmp s_inner
    WHERE s_inner.ID = s.ID AND s_inner.stopid=s.stopid and s_inner.Events=s.Events
    AND s.Events = 'D1'
) AND
 s.ID = 1

预期产出

 ID stopid  Events  
 1  1       AF 
 1  1       X1  

我想显示所有没有D1的ID。

sql sql-server sql-server-2012
1个回答
0
投票
  SELECT s.ID, StopID, Events 
  FROM #tmp s 
  WHERE NOT EXISTS (SELECT 1 from #tmp WHERE Events = 'D1' and StopID=s.StopID)

小提琴

身份证 停止ID 活动
1 1 AF
1 1 X1
© www.soinside.com 2019 - 2024. All rights reserved.