2017-01-26 7 views
0

私はレコードの最新の日付を返し、INNERはこのようにJOINを持ってしようとしています:SQL Server - 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 

これは正常に動作し、それが最高の日付のすべてのレコードを返し、最高の日付を持っていないレコードを削除します。

ただし、一部のレコードには、RegDateにNULL値があります。これらのレコードもどのように返すことができますか?

LEFT OUTER JOINに結合を設定すると、最も高い日付の代わりにすべての日付が返されます。

このアプローチにはどのような方法が最適でしょうか?

答えて

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 
+0

を追加します。それはひどく簡単でした。ありがとう! – Dean

関連する問題