TSQL如何选择具有以下where条件的SQL记录

时间:2017-12-08 18:37:24

标签: sql-server tsql

我有一张带有记录的测试表

ID             Date    
1            12/08/2017
1            11/10/2016
1            06/09/2010
1            06/29/2009
2            05/29/2009
2            03/29/2009
2            02/29/2009

我想选择日期> 2010的ID,但我想要包含所有记录日期 我试过这个

select * from Test
where Date >='01/01/2010'

但这只返回3个id为1的记录。如果只有id的所有日期都小于2010,则我的select查询不应该选择该ID。如果id有一个或多个日期> 2010则包含在select中。我需要输入子查询吗?

2 个答案:

答案 0 :(得分:2)

SELECT *
FROM Test t
WHERE EXISTS ( SELECT 1
               FROM Test
               WHERE ID = t.ID 
               AND Date >= '01/01/2010'
             )

答案 1 :(得分:0)

尝试以下查询。您必须排除在'01 / 01/2010'之前有记录的任何ID

SELECT *
FROM Test t
WHERE NOT EXISTS (
    SELECT 1
    FROM Test
    WHERE ID = t.ID AND Date < '01/01/2010'
)