SQL サーバー 2008 の場合:
2 つのテーブルがあるとします。
Table1 には、Name、Date1、Date2 の 3 つのフィールドがあります。現在、すべての Date2 エントリは NULL です。(Name, Date1) は一意のキーを形成します。
Table2 には、Name と Date2 の 2 つのフィールドがあります。(Name, Date2) は一意のキーを形成します。
Table1 のすべての「名前」には、Table2 に少なくとも 1 つの対応するエントリがあります。
ここで、Table1 のすべての Date2 エントリ (現在はすべて NULL であることを思い出してください) を、Table1 のDate1 に最も近いTable2 の Date2 エントリに更新したいと考えています。つまり、次の結果が得られる日付です。
min(datediff(dd,Table1.Date1,Table2.Date2))
明確にするために、次のエントリがある場合:
表1:
[名前]: カール、[日付 1]: 2009 年 1 月 1 日、[日付 2]: NULL
表 2:
[名前]: カール、[日付 2]: 2000 年 1 月 1 日
[名前]: カール、[日付 2]: 2009 年 1 月 7 日
[名前]: カール、[日付 2]: 2010 年 1 月 1 日
次に、「2009 年 1 月 1 日」に最も近い日付であるため、Table1.Date2 を「2009 年 1 月 7 日」に更新します。
どうもありがとう
カール