SQL Server - 返回最近的记录日期,包括NULL?

时间:2017-01-26 16:24:07

标签: sql-server

我正在尝试返回记录的最新日期,并且像这样进行INNER JOIN:

 If searchVal = findVal Then
    Range("C2:C" & LRow).Select
    For Each cell In Selection
        If cell = resultVal Then
            ID = cell.Offset(0, -1).Value
        End If
    Next
 End If

这很好用,它会返回所有日期最晚的记录,并删除没有最高日期的记录。

但是,某些记录在RegDate中具有NULL值。我怎样才能返回这些记录?

如果我将联接设置为LEFT OUTER JOIN,则返回所有日期而不是最高日期。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

添加OR dbo.registrations.RegDate IS NULL条件

INNER JOIN (SELECT ID,
                    Max(RegDate) AS RegDate
            FROM   dbo.registrations
            GROUP  BY ID) RI
        ON app.ID = RI.ID
            AND ( dbo.registrations.RegDate = RI.RegDate
                    OR dbo.registrations.RegDate IS NULL ) --Here