|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
Доброго времени суток! Подскажите пожалуйста, есть ли возможность в фокспро сравнить запись одной таблицы, с записью в другой, и если они не совпадают, добавить эту запись в одну из этих таблиц. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2015, 13:23 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
Da mojno..poprobuy EXISTS SQL zapros ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2015, 16:17 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
UTF, А можно пример запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2015, 18:58 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
UTF, Вы наверно меня не так поняли, мне нужно сравнить всю строку, т.е. имеются две одинаковые по структуре таблицы, я сравниваю полностью всю строку одной таблицы, со строками другой таблицы. И если все столбцы этой строки совпадают со сверяемой таблицей, то я эту строку не добавляю в таблицу, иначе добавляю. Иначе говоря сверяю полную идентичность строки, если хоть какая то запись строки разнится, то эту строку добавляю в таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 11:12 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
IF ("Select (Col1+Col1+Col...) From Table" !=(Text1.Text+Text2.Text....)) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 12:22 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
mag034 Проверьте UNION SELECT * FROM table1 ; UNION ; SELECT * FROM table2 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 12:45 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
mag034UTF, Вы наверно меня не так поняли, мне нужно сравнить всю строку, т.е. имеются две одинаковые по структуре таблицы, я сравниваю полностью всю строку одной таблицы, со строками другой таблицы. И если все столбцы этой строки совпадают со сверяемой таблицей, то я эту строку не добавляю в таблицу, иначе добавляю. Иначе говоря сверяю полную идентичность строки, если хоть какая то запись строки разнится, то эту строку добавляю в таблицу. Правильно он понял. Это один из возможных вариантов решения Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Это, так сказать, решение "в лоб". Достаточно трудоемкое, поскольку придется перечислять все поля. Однако и самое надежное. Здесь нет неких "умолчаний", которым должны удовлетворять данные таблиц. Кроме того, данное решение легко изменяется под уточняющие требования. Например, сравнение только по некоторым, а не по всем полям... Решение, предложенное sg12 исходит из предположения, что в таблицах нет дубликатов. В смысле, в самой таблице Table1 нет совершенно одинаковых записей. Объединение таблиц при помощи UNION все дубликаты автоматически удалит. Даже если эти дубликаты были в одной таблице. Решение через формирование строки Col1+Col1+Col+.. предполагает, что общая длина полученного выражения не превышает 254 символов. Иначе будет ошибка выполнения Select-SQL. Можно еще решить задачу через формирования контрольных сумм строк SYS(2007). В общем, разные есть варианты... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 16:50 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
Спасибо всем большое за уделенное мне время! ВладимирМ, я получил искомый результат по Вашему запросу. А как правильнее добавить полученные строки в table2 ? Можно ли вывести полученные строки в отдельную таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 19:52 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
как в таблицу загнать нашел - добавить в конце "into table3.dbf", а грамотно ли будет добавить во вторую таблицу через третью или все таки можно это сделать на прямую? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2015, 20:11 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
mag034как в таблицу загнать нашел - добавить в конце "into table3.dbf", а грамотно ли будет добавить во вторую таблицу через третью или все таки можно это сделать на прямую? Для VFP9 - можно. Для младших версий - только через таблицу-посредник Если речь идет о VFP9, то примерно так Код: sql 1. 2. 3.
Для младших версий FoxPro используются временная таблица с последующим APPEND FROM. Дело в том, что в младших версиях FoxPro Insert-SQL может вставлять только по одной записи за раз. Просто синтаксис не позволит это сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 03:13 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
ВладимирМ, Спасибо большое Владимир! У Вас такие большие познания в SQL и VFP, что можно позавидовать )). А можно будет с Вами напрямую связываться через агент и аську? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 09:51 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
тоже Выбирает все записи из Таb1, которых нет в Tab2 SELECT * From Tab1 WHERE Id NOT IN (SELECT Id From Tab2) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 10:35 |
|
проверка на совпадение записей
|
|||
---|---|---|---|
#18+
В Фоксе время словно остановилось, 2004 год: http://www.sql.ru/forum/127959/kak-vybrat-ne-sovpadaushhie-stroki-iz-dvuh-tablic?hl=exists ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2015, 11:56 |
|
|
start [/forum/topic.php?fid=41&msg=38848321&tid=1582461]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 312ms |
total: | 431ms |
0 / 0 |