У меня есть две таблицы, в каждой из которых есть поле с именем PostDate.
Обе таблицы также имеют поле под названием LoadID.
В первой таблице есть одна запись для каждого LoadID.
Во второй таблице есть несколько записей для каждого LoadID, и каждая запись имеет различное значение для PostDate.
Я хочу обновить значение PostDate в первой таблице с помощью минимального значения PostDate во второй таблице для каждого LoadID.
Не могу понять, как это сделать.
Это часть SQL или часть VB, которая вызывает у вас проблемы?
У меня возникли проблемы с созданием подзапроса с функцией min. Я пробовал все, что мог придумать, но не мог понять, как сгруппировать и т. д.
Используйте коррелированный подзапрос:
UPDATE first_table f
SET post_date = (
SELECT min( post_date )
FROM second_table s
WHERE s.LoadID = f.LoadID
)
я получаю «Операция должна использовать обновляемый запрос», когда пытаюсь это сделать. Вроде должно работать. Я использую Access 2000.
@krokodilko ответ тоже будет нормально работать Я также предлагаю новое решение для этого
UPDATE f
SET f.post_date = s.Post_Date
from first_table f
inner join
(
SELECT min( post_date ) Post_Date, LoadId
FROM second_table s
Group by LoadId
) s
on s.LoadID = f.LoadID
Что вы пробовали и что получилось, когда вы это попробовали? Если вы ничего не пробовали, тогда еще рано размещать здесь вопрос.