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

Вниз

Слияние таблиц это как? Помогите!   Найти похожие ветки 

 
Xmen   (2001-12-19 07:59) [0]

Мне нужно слият две таблицы это как можно сделать, И такая проблема у меня есть две таблицы одинаковы по смыслю, но немношко ест разница у одного чут болше полей (дополнение) и имя таблиц различаются. и как вобще можно работат с таблицами которых нужно слиять, дополнять, обновлять. какой компонент отвечает за это и как можно это сделать. Помогите пожалуста, очень нужна, свои ответы лучше посылайте по почте(я невсегда подключен к инету.) rustam.ergashev@gallabank.uz


 
TonnyS ©   (2001-12-19 11:43) [1]

Реализация зависит от задачи.
1. Если просто в первую добавить записи из второй, которой в первой нет то запрос типа (выборка, ещё не добавление):

SELECT t2.* FROM <table2> t2
WHERE (SELECT count(t1.*) FROM <table1> t1
WHERE t1.f1=t2.f1 AND t1.f2=t2.f2 AND...{все поля кроме ключевого})=0

вроде так. Потом в цикле пробежаться по полученной выборке и повносить в table1 записи из неё. Можно сразу запросом внести, но я предпочитаю в цикле, чтоб лог вести.
2. Таблицы формируются в разных местах и их периодически согласовывать надо. Тогда в таблице добавить 2 целочисленных поля, например Serv и CompStat. В первое записываеш 0 - для главного рабочего места, 1,2,... - для подчиненного. В CompStat - 0 - если главное рабочее место ИЛИ Добавление на подчинённом, 1 - если Изменение записи на подчинённом.
тогда простым запросом
SELECT * FROM table2 WHERE Serv<>0
получаеш все записи, сделанные на подчинённом, а по полю CompStat смотриш, было ли изменение записи.
После внесения всех записей в table1 просто копируеш её в table2.
Если что - пиши (можно на почту)


 
Xmen   (2001-12-19 14:21) [2]

Спосибо за ответ у меня таблицы отличаются тем, что некторые поля имеют другое имя, и это не нужно изменить, а копироват туда данные. Я попробовал Help->Batchmove программу но это не помогло.Индексны поля не копируются.


 
TonnyS ©   (2001-12-19 14:51) [3]

тогда запрос вида 1, а в условии не обязательно идентичные поля указывать, можно типа t1.name=t2.name_s и т.д.



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

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

Наверх




Память: 0.47 MB
Время: 0.007 c
3-75524
Dim
2001-12-21 14:34
2002.01.24
Первый раз такое вижу. Что это такое?


4-75709
Roman_
2001-11-22 21:59
2002.01.24
Чертов PaintBox


7-75690
Jazzy$
2001-10-10 19:45
2002.01.24
Выключение монитора.


1-75568
NNC
2002-01-06 14:21
2002.01.24
Вопросик!


4-75720
ILYAKA
2001-11-23 18:43
2002.01.24
Как взять список окон в Windows (жел-но с Handl-ами)