【问题标题】:TSQL How to select SQL records with following where conditionTSQL如何选择具有以下where条件的SQL记录
【发布时间】:2017-12-08 18:37:23
【问题描述】:

我有一个记录表测试

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 年,那么我的选择查询不应选择该 ID。如果 id 有一个或多个日期 >2010,则包含在选择中。我需要输入子查询吗?

【问题讨论】:

  • 您的查询为您提供了正确的结果。至少有一个记录 > 2009。

标签: sql-server tsql


【解决方案1】:
SELECT *
FROM Test t
WHERE EXISTS ( SELECT 1
               FROM Test
               WHERE ID = t.ID 
               AND Date >= '01/01/2010'
             )

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 是的,因为我认为您只想要在 '01/01/2010' 之前没有条目的记录
    猜你喜欢
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 2013-11-18
    • 2016-05-01
    • 1970-01-01
    相关资源
    最近更新 更多