我有一张带有记录的测试表
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中。我需要输入子查询吗?
答案 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'
)