SQL查询 – 查询当前日期但过去的条件

我正在寻求以下方案的帮助:

我有一个SQL Server数据库,带有一个存储历史数据的表.例如,让我们使用以下作为样本集.

CAR, SERVICE DATE, FINDINGS
1234, 21/01/2001, Fuel Filter
1234, 23/09/2009, Oil Change
1234, 30/09/2015, Tyres
3456, 30/09/2015, Clutch

我希望从以下示例中恢复显示在给定日期引入的任何汽车的服务的结果,例如2015年9月30日,但只有在过去换油.

该查询只会带回:

1234, 30/09/2015, Tyres

因为它是那个日期唯一的汽车,以前是换油的服务.

任何帮助将不胜感激.

最佳答案 使用
EXISTS条款:

SELECT cur.car,
    cur.[service date],
    cur.findings
FROM tablename cur
WHERE cur.[service date] = @mydate
    AND EXISTS (
        SELECT 1
        FROM tablename past
        WHERE past.car = cur.car
           AND past.[service date] < cur.[service date]
           AND past.findings = 'oil change'
    )
点赞