Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.20;
Скачать: CL | DM;

Вниз

Изменения в БД. Как проще отловить   Найти похожие ветки 

 
jonik pegas ©   (2002-05-28 09:14) [0]

Здраствуйте Мастера. Есть две одинаковые по структуре таблицы t1 и t2 (структура-ключ счетчик, уникальное строковое поле(обозначение) и много строковых полей). Как проще получить отчет различий t1 и t2 примерно такого вида
Добавлено в t1 по сравнению с t2
156 Заказ№1456 и т.д
.....
Изменено в t1
....
Удалено в t1
....
Причем привязыватся к счетчику нельзя ключевым при сравнении должно быть поле обозначение
Пока ничего лучшего select * from t1 where t1 in (select t11.id from t1 as t11,t2 where t11.obozn=t2.obozn and (t11.naim<>t2.niam
or t11.kolvo<>t2.kolvo и т.д по всем полям в голову не лезет. Может кто нибудь решает такую проблему по другому?


 
DPetrovich ©   (2002-05-28 09:57) [1]


select t1.*
from
t1 left join t2 on t1.id=t2.id and t1.obozn=t2.obobzn and...
where t2.id is null

- запси который есть в t1 и нет в t2


 
jonik pegas ©   (2002-05-28 10:16) [2]

>DPetrovich ©
К полю Id нельзя привязыватся это счетчик и на разных машинах будут разные. Сравнение должно производится по obozn. Собственно с удаленными и добавленными записи проблем нет (через join), а с измененными


 
DPetrovich ©   (2002-05-28 10:22) [3]


select t1.*
from
t1 t11
join t2 t21 on t11.obozn=t21.obozn
left join t2 t22 on
t11.obozn=t22.obozn
and
t11.kolvo=t22.kolvo
and ...

where t22.id is null




 
DPetrovich ©   (2002-05-28 10:28) [4]

всё равно все поля перечислять надо



Страницы: 1 вся ветка

Текущий архив: 2002.06.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
4-65275
Shiza
2002-04-17 20:20
2002.06.20
Работа с оборудованием


3-64979
icu
2002-05-28 17:01
2002.06.20
SQL-запрос


14-65223
Miwa
2002-05-16 01:30
2002.06.20
Распознавание голоса в компютере.


1-65052
kioto
2002-06-10 08:44
2002.06.20
Как отловить нажатие кнопок-стрелок ?


1-65092
Termik
2002-04-23 10:00
2002.06.20
Как заставить Делфи выполнить мат. выражение ?