В SQL Server 2008:
Предположим, у меня есть две таблицы.
Таблица1 имеет 3 поля: Имя, Дата1 и Дата2. В настоящее время все записи Date2 имеют значение NULL. (Имя, Дата1) образуют уникальный ключ.
Таблица2 имеет 2 поля: Имя и Дата2. (Имя, Дата2) образуют уникальный ключ.
Каждое «Имя» в Таблице 1 имеет хотя бы одну соответствующую запись в Таблице 2.
Теперь я хочу обновить все записи Date2 в Таблице 1 (помните, что все они имеют значение NULL прямо сейчас) до записи Date2 в Таблице 2, которая является ближайшей к Date1 в Таблице1. То есть дата, которая дала бы результат:
min(datediff(dd,Table1.Date1,Table2.Date2))
Чтобы было ясно, если у меня есть следующие записи:
Table1:
[Имя]: Карл, [Date1]: 01.01.2009, [Date2]: NULL
Table2:
[Имя]: Карл, [Date2]: 1/1/2000
[Имя]: Карл, [Date2]: 1/7/2009
[Имя]: Карл, [Date2]: 1/1/2010
Затем я хочу обновить Table1.Date2 до «1/7/2009», поскольку это самая близкая дата к «01.01.2009».
Большое спасибо
Karl