лексика построения

Airat
Дата: 26.03.2002 06:26:30
мне нужно вот такое вырожение но только пастроеный SQL

вот:

если таблица1.поле1=таблица2.поле1 и таблица1.поле2=таблица2.поле2 то из таблица1.поле3 добавить в таблица2.поле3
иначе поля с все поля несовподающими данными добавить таблица3

плз помогите правельно на SQL выражение саставить
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 08:23:12
таблицы связоны, насчет 2-й части нужно чтобы несовподающеи данные выгружались в другую таблицу3 чтобы видеть что не совпало!
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).
Airat
Дата: 28.03.2002 05:14:36
спасибо большое попробаю
help в access-e читаю часто но не всегда могу найти то что мне нужно я отсилы 2 месеца с access-м