powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нужна помощь... Слить 2 DBF таблицы в одну...
8 сообщений из 8, страница 1 из 1
Нужна помощь... Слить 2 DBF таблицы в одну...
    #32741624
CrazyPitbull
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такая проблемма, есть 2 DBF файла одинаковой структуры(одинаковые таблицы), в них есть как одинаковые записи так и разные. Нужна программка которая сможет обьединить эти файлы в третий, который будет хранить общую информацию обоих файлов (одинаковые записи недолжны дублироваться)... Есть ли какая программа для работы с DBF файлами, которая может так сливать файлы??? или может кто сам делал что-то на подобие, буду очень благодарен если поделетись! Заранее спасибо...
...
Рейтинг: 0 / 0
Нужна помощь... Слить 2 DBF таблицы в одну...
    #32741628
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В поиск.
Тем про сравнение файлов с решениями полно.

P.S.В общем виде задача не решаемая
...
Рейтинг: 0 / 0
Нужна помощь... Слить 2 DBF таблицы в одну...
    #32741629
CrazyPitbull
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я видел большое колличество программ для просмотра DBF файлов, кроме того можно редактировать и добавлять новые записи... Поэтому решил, что может быть есть полезная программа которая может из двух файлов собрать один содержащий общую информацию без повторений одинаковой информации
...
Рейтинг: 0 / 0
Нужна помощь... Слить 2 DBF таблицы в одну...
    #32741740
Denis-Sumy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй запросом, что-то вроде такого

a1 -таблица 1
b1 - таблица 2
key - ключевое поле (может быть несколько символьных полей поле1+поле2+...)

SELECT distinct a1.* ; && получаем данные первой таблицы которые
from a1 , b1; && совподают с данными второй таблицы
WHERE a1.key = b1.key;
union;
SELECT distinct b1.* ; && добавляем данные второй таблицы которых
from b1; && нет в первой таблице
WHERE b1.key NOT IN (select a1.key FROM a1);
union;
SELECT distinct a1.* ; && добавляем данные первой таблицы которых
from a1; && нет во второй таблице
WHERE a1.key NOT in (select b1.key FROM b1);
INTO TABLE c:\rezult
...
Рейтинг: 0 / 0
Нужна помощь... Слить 2 DBF таблицы в одну...
    #32741846
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi CrazyPitbull!

Если бы ты мог формально описать что есть ОДИНАКОВАЯ ИНФОРМАЦИЯ, то возможно
кто-нить и написал бы тебе программу-утилиту. И даже совершенно
безвозмездно, т.е. даром :)
Например при структуре
field1, field2,...fieldN - по каким полям надо сравнивать инфу? По всем? Но
тогда любой Candidate/Primary Key индекс не даст тебе объединить данные.
Скажем если есть такой индекс по Field1, А в tbl1 и tbl2 имеются 2 записи с
одинаковыми значениями в field1 но разными в прочих полях, то что
делать?

В общем случае задача решается так:
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT * FROM tbl1 WHERE NOT EXIST (SELECT * FROM tbl2 WHERE tbl2.field1 == 
tbl1.field1 AND tbl2.field2 == tbl1.field2 AND ...) INTO CURSOR csr2Add
SELECT tbl2
APPEND FROM DBF("csr2Add")
* теперь в tbl2 результат слияния
* можно конечно и в другую таблицу скопировать
Начиная с VFP8 и того проще - в одну строку :)
Код: plaintext
1.
2.
INSERT INTO tbl2 SELECT * FROM tbl1 WHERE NOT EXISTS (SELECT * FROM tbl2 
WHERE tbl2.nid == tbl1.nid)
А вот какие поля перечислять в подзапросе, по каким выбирать
"одинаково/неодинаково"... вот тут то и будет самая главная проблема :)
Да, ещё - эту конструкцию (запрос) можно формировать и динамически - на
основе информации AFIELDS() - и потом запускать через макро. Тогда лучше для
верности и поля по именам прописать, а то мало-ли, вдруг порядок их
отличается в "сливаемых" таблицах...

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Нужна помощь... Слить 2 DBF таблицы в одну...
    #35931461
schcool
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня аналогичная ситуация!!!! ПОМОГИТЕ!!!!!!! ГОРЮ!!!!

Ситуация такова - имеются две таблицы dbf, которые находятся в разных директориях.
Таблица 1 - xxx.dbf с полями: Xtitle1, Xtitle2, Xtitle3, Xtitle4
Таблица 2 - yyy.dbf с полями Ytitle1, Ytitle2, Ytitle3.

В этих таблицах Xtitle3=Ytitle1

Необходимо третью таблицу с любым именем в любом месте, с полями: Ytitle1, Ytitle2, Xtitle1, на основе талицы 2, т.е. только с данными, которые содержатся в таблице 2 и соответствующие данные из таблицы 1.

И если Вас не затруднит - по подробнее! Простите делитанта!
...
Рейтинг: 0 / 0
Нужна помощь... Слить 2 DBF таблицы в одну...
    #35931496
scelo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
append from
- а слово делитант пишется : дилетант...
...
Рейтинг: 0 / 0
Нужна помощь... Слить 2 DBF таблицы в одну...
    #35931515
=-O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
=-O
Гость
schcoolУ меня аналогичная ситуация!!!! ПОМОГИТЕ!!!!!!! ГОРЮ!!!!

Ситуация такова - имеются две таблицы dbf, которые находятся в разных директориях.
Таблица 1 - xxx.dbf с полями: Xtitle1, Xtitle2, Xtitle3, Xtitle4
Таблица 2 - yyy.dbf с полями Ytitle1, Ytitle2, Ytitle3.

В этих таблицах Xtitle3=Ytitle1

Необходимо третью таблицу с любым именем в любом месте, с полями: Ytitle1, Ytitle2, Xtitle1, на основе талицы 2, т.е. только с данными, которые содержатся в таблице 2 и соответствующие данные из таблицы 1.

И если Вас не затруднит - по подробнее! Простите делитанта!
Код: plaintext
1.
2.
3.
4.
select Ytitle1, Ytitle2, Xtitle1 
from xxx
inner join yyy
on xxx.keyFields=yyy.keyFields
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нужна помощь... Слить 2 DBF таблицы в одну...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]