Lesnick
Дата: 26.03.2002 11:41:44
Не совсем корректно поставлена задача, а именно не указанно связаны ли Таблица1 и Таблица2(по полям 1,2).
Что касается первой части (если поля равны) то примерно так:
UPDATE Таблица1, Таблица2 SET Таблица2.Поле3 = [Таблица1].[Поле3]
WHERE (((Таблица1.Поле1)=[Таблица2].[Поле1]) AND ((Таблица1.Плое2)=[Таблица2].[Поле2]));
Что касается сторой части, то если таблицы не связаны получится каша(или я не совсем понял задачу).
Airat
Дата: 27.03.2002 11:03:14
насчет 2-й части нужно чтобы несовподающеи данные выгружались в другую таблицу3 или удалялись в таблице1 те данные каторые совпали и еще стала токая продлема певое сровнение мне нужно проводить по первым 3-м символам спросиш зачем
например есть фомилия 'Гарипов'в таблице1 и 'Гарипова' в таблице2 сравнивать нужно только три первых буквы 'Гар' в таблиц1 и 'Гар' в таблице2
Lesnick
Дата: 27.03.2002 13:35:53
По второй части примерно так(если конечно не ошибаюсь):
Insert into Таблица3 (Поле1, Поле2, Поле3) SELECT Таблица1.Поле1, Таблица1.Поле2, Таблица1.Поле3
FROM Таблица1 Where Not Exists (Select Таблица2.Поле1, Таблица2.Поле2 From Таблица2 Where Таблица1.Поле1=Таблица2.Поле1 And ((Left$([Таблица1].[Поле2],3))=Left$([Таблица2].[Поле2],3)));
вставляет записи в таблицу3 из таблицы1 для которых нет соответствия в таблице2, при связи по полям 1 и 2(т.е. части поля2). Чтобы вставить такие же данные из таблицы2 просто поменяйте местами таблицы 1 и 2. Для удаления записей используте Delete с условиями которые писались раньше, только акуратно и внимательно.
По поводу сравнения по первым 3 символам см сдесь же функция Left("строковое выражение",n), где n-кол-во символов.
(У меня в базе при экспериментах поле1 было числовым, а поле2 строковым.)
ЗЫ
А воще читайте Help access там довольно много написано(по крайней мере в access97).