sql-Select语句,其中不存在每个id的条件?

sql-Select语句,其中不存在每个id的条件?,sql,sql-server,Sql,Sql Server,我的数据库中有这个表,我有一个entrys的历史记录: 选项卡名称:活动 ActivityID | DateBegin | DateEnd 1 2013-01-01 2013-01-15 1 2013-01-15 9999-12-31 2 2013-01-20 2013-03-15 现在我想写一个查询,它将返回DateEnd= 9999-12-31. 在本例中,我只需要返回id 2 我写了这个查询,但它不起作用:

我的数据库中有这个表,我有一个entrys的历史记录:

选项卡名称:活动

ActivityID | DateBegin  | DateEnd 
1            2013-01-01   2013-01-15
1            2013-01-15   9999-12-31
2            2013-01-20   2013-03-15
现在我想写一个查询,它将返回DateEnd= 9999-12-31. 在本例中,我只需要返回id 2

我写了这个查询,但它不起作用:(我得到一个NULL的return语句)

有人能帮我吗

非常感谢

请试一试

SELECT ActivityID 
FROM   dbo.Activity As x
WHERE  NOT EXISTS (
         SELECT ActivityID
         FROM   dbo.Activity
         WHERE  DateEnd ='9999-12-31'
         AND    ActivityID = x.ActivityID
       )
 SELECT ActivityId  from Activity  where  DateEnd != CONVERT(varchar(10), '9999-12-31',101)  
请试一试

 SELECT ActivityId  from Activity  where  DateEnd != CONVERT(varchar(10), '9999-12-31',101)  
请试一试

 SELECT ActivityId  from Activity  where  DateEnd != CONVERT(varchar(10), '9999-12-31',101)  
请试一试

 SELECT ActivityId  from Activity  where  DateEnd != CONVERT(varchar(10), '9999-12-31',101)  

如果要返回所有没有日期为9999-12-31的行的ID,应首先检查不希望返回的ID,然后在查询中避免这些ID

因此,查询变成:

SELECT ActivityID 
    FROM [dbo].[Activity]
    WHERE ActivityID NOT IN (SELECT ActivityID from
              [dbo].[Activity] WHERE DateEnd ='9999-12-31') 

如果要返回所有没有日期为9999-12-31的行的ID,应首先检查不希望返回的ID,然后在查询中避免这些ID

因此,查询变成:

SELECT ActivityID 
    FROM [dbo].[Activity]
    WHERE ActivityID NOT IN (SELECT ActivityID from
              [dbo].[Activity] WHERE DateEnd ='9999-12-31') 

如果要返回所有没有日期为9999-12-31的行的ID,应首先检查不希望返回的ID,然后在查询中避免这些ID

因此,查询变成:

SELECT ActivityID 
    FROM [dbo].[Activity]
    WHERE ActivityID NOT IN (SELECT ActivityID from
              [dbo].[Activity] WHERE DateEnd ='9999-12-31') 

如果要返回所有没有日期为9999-12-31的行的ID,应首先检查不希望返回的ID,然后在查询中避免这些ID

因此,查询变成:

SELECT ActivityID 
    FROM [dbo].[Activity]
    WHERE ActivityID NOT IN (SELECT ActivityID from
              [dbo].[Activity] WHERE DateEnd ='9999-12-31') 

为什么使用
不存在
?JU使用
从dateend'9999-12-31'所在的表中选择*为什么使用
不存在
?JU使用
从dateend'9999-12-31'所在的表中选择*为什么使用
不存在
?JU使用
从dateend'9999-12-31'所在的表中选择*为什么使用
不存在
?JU使用
从dateend'9999-12-31'所在的表中选择*
检查查询的输出检查查询的输出检查查询的输出检查查询的输出检查输出