我有一个 SQL 查询,它返回对一台设备的一组检查,其中有一列指示对记录集表示的设备进行维修的日期。如果在检查时未进行修复,则该字段为 NULL。有问题的设备将在其生命周期内多次维修。
我想在查询中查找具有最小 InspectionDate 的记录子集,每个记录之后具有非 NULL 修复日期,RepairDate 字段中的值为 NULL。
例如:
InspectionDate ReprairDate OtherData
1/1/2010 NULL ...
2/1/2010 NULL ...
2/15/2010 2/15/2010 ...
3/1/2010 NULL ...
4/1/2010 NULL ...
5/1/2010 5/1/2010 ...
6/1/2010 6/1/2010 ...
7/1/2010 NULL ...
应该配对到:
InspectionDate ReprairDate OtherData
1/1/2010 NULL ...
3/1/2010 NULL ...
7/1/2010 NULL ...
我知道使用游标这将是一件相当微不足道的事情,但我试图避免使用它们,并且觉得这可以通过 PARTION、OVER 和 GROUP BY 的某种组合来完成,但我没有偶然发现正确的组合。