powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проверка на совпадение записей
14 сообщений из 14, страница 1 из 1
проверка на совпадение записей
    #38847587
mag034
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток! Подскажите пожалуйста, есть ли возможность в фокспро сравнить запись одной таблицы, с записью в другой, и если они не совпадают, добавить эту запись в одну из этих таблиц. Спасибо!
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38847617
UTF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF
Гость
Da mojno..poprobuy EXISTS SQL zapros
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38847655
mag034
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UTF,

А можно пример запроса?
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38847831
UTF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF
Гость
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38848023
mag034
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UTF,

Вы наверно меня не так поняли, мне нужно сравнить всю строку, т.е. имеются две одинаковые по структуре таблицы, я сравниваю полностью всю строку одной таблицы, со строками другой таблицы. И если все столбцы этой строки совпадают со сверяемой таблицей, то я эту строку не добавляю в таблицу, иначе добавляю. Иначе говоря сверяю полную идентичность строки, если хоть какая то запись строки разнится, то эту строку добавляю в таблицу.
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38848034
UTF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UTF
Гость
IF ("Select (Col1+Col1+Col...) From Table" !=(Text1.Text+Text2.Text....))
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38848038
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mag034

Проверьте UNION
SELECT * FROM table1 ;
UNION ;
SELECT * FROM table2
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38848128
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mag034UTF,

Вы наверно меня не так поняли, мне нужно сравнить всю строку, т.е. имеются две одинаковые по структуре таблицы, я сравниваю полностью всю строку одной таблицы, со строками другой таблицы. И если все столбцы этой строки совпадают со сверяемой таблицей, то я эту строку не добавляю в таблицу, иначе добавляю. Иначе говоря сверяю полную идентичность строки, если хоть какая то запись строки разнится, то эту строку добавляю в таблицу.
Правильно он понял. Это один из возможных вариантов решения

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
* Список записей, которых нет в другой таблице
select table1.* ;
from table1 ;
WHERE NOT EXISTS(SELECT 'x' ;
		FROM table2 ;
		WHERE 	table1.Field1=table2.Field1 ;
			and table1.Field2=table2.Field2 ;
			and table1.Field3=table2.Field3 ;
			and ....)



Это, так сказать, решение "в лоб". Достаточно трудоемкое, поскольку придется перечислять все поля. Однако и самое надежное. Здесь нет неких "умолчаний", которым должны удовлетворять данные таблиц. Кроме того, данное решение легко изменяется под уточняющие требования. Например, сравнение только по некоторым, а не по всем полям...

Решение, предложенное sg12 исходит из предположения, что в таблицах нет дубликатов. В смысле, в самой таблице Table1 нет совершенно одинаковых записей. Объединение таблиц при помощи UNION все дубликаты автоматически удалит. Даже если эти дубликаты были в одной таблице.

Решение через формирование строки Col1+Col1+Col+.. предполагает, что общая длина полученного выражения не превышает 254 символов. Иначе будет ошибка выполнения Select-SQL.

Можно еще решить задачу через формирования контрольных сумм строк SYS(2007). В общем, разные есть варианты...
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38848204
mag034
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем большое за уделенное мне время!
ВладимирМ, я получил искомый результат по Вашему запросу. А как правильнее добавить полученные строки в table2 ? Можно ли вывести полученные строки в отдельную таблицу?
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38848209
mag034
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как в таблицу загнать нашел - добавить в конце "into table3.dbf", а грамотно ли будет добавить во вторую таблицу через третью или все таки можно это сделать на прямую?
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38848292
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mag034как в таблицу загнать нашел - добавить в конце "into table3.dbf", а грамотно ли будет добавить во вторую таблицу через третью или все таки можно это сделать на прямую?
Для VFP9 - можно. Для младших версий - только через таблицу-посредник

Если речь идет о VFP9, то примерно так

Код: sql
1.
2.
3.
INSERT INTO table2 ;
select * from table1 ;
where not exists(...)


Для младших версий FoxPro используются временная таблица с последующим APPEND FROM. Дело в том, что в младших версиях FoxPro Insert-SQL может вставлять только по одной записи за раз. Просто синтаксис не позволит это сделать.
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38848321
mag034
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ, Спасибо большое Владимир! У Вас такие большие познания в SQL и VFP, что можно позавидовать )). А можно будет с Вами напрямую связываться через агент и аську? ))
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38848329
Людмila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже Выбирает все записи из Таb1, которых нет в Tab2
SELECT * From Tab1 WHERE Id NOT IN (SELECT Id From Tab2)
...
Рейтинг: 0 / 0
проверка на совпадение записей
    #38848348
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Фоксе время словно остановилось, 2004 год:
http://www.sql.ru/forum/127959/kak-vybrat-ne-sovpadaushhie-stroki-iz-dvuh-tablic?hl=exists
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проверка на совпадение записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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