Отбор данных в двух таблицах dbf

 
0
 
Datenbanken
ava
ivan2222 | 03.11.2016, 09:19
Здравствуйте, помогите пожалуйста, есть 2 таблицы формата dbf с одинаковыми полями, требуется написать запрос что бы данные из одной таблицы отбирались в другой а лишнее удалялось, что бы отбор был по 3 столбцам.
таблицы это список жителей города,
нужно отобрать по номеру страхового пенсионного, по категории льготника и по закрытой или открытой лготной категории тип N - открытая, или D - закрытая
два файла формат файлов dbf, столбцы pfr, cat_id, type_open. тип полей Character.
нужно что бы данные в первом файле остались теже что и во втором а лишние в первом файле удалились, отбор должен быть по 3 столбцам
Запрос будет выполняться в Database Explorer
Kommentare (25)
ava
Akina | 03.11.2016, 09:43 #

DELETE t1.*
FROM t1
LEFT JOIN t2
  ON  t1.field1=t2.field1
  AND t1.field2=t2.field2
-- ...
WHERE t2.id IS NULL
ava
ivan2222 | 03.11.2016, 09:59 #
Я прошу прощения за вопрос field1 это название файла, а t1 - это столбца? 
ava
Akina | 03.11.2016, 10:55 #
Угу... только наоборот.
ava
ivan2222 | 03.11.2016, 11:10 #
Как на оборот?

später ergänzt:
А куда вписывать название столбца?
ava
Akina | 03.11.2016, 11:38 #
Цитата (ivan2222 @  3.11.2016,  12:10 findReferencedText)
куда вписывать название столбца? 

Это в Экселе столбцы. А в терминах баз данных это называется "поле". А по-буржуйски - field.
ava
ivan2222 | 03.11.2016, 11:47 #
Получается для второго значения нужно после
WHERE t2.id IS NULL
вставить то же самое только для второго значения?
ava
Akina | 03.11.2016, 13:04 #
Что такое "второе значение"?
В шаблоне однозначно указано, куда надо вносить корректировки.
ava
ivan2222 | 03.11.2016, 14:50 #
Я имею ввиду куда вписывать название полей pfr, cat_id, type_open?
ava
Akina | 03.11.2016, 15:19 #
Цитата (ivan2222 @  3.11.2016,  15:50 findReferencedText)
куда вписывать название полей pfr, cat_id, type_open? 

Так вроде выбора-то нет, всё слишком однозначно... не расстраивай.
ava
ivan2222 | 03.11.2016, 15:26 #
Я прошу прощения подскажи пожалуйста куда вписывать названия полей? Я что то не понял.
ava
ivan2222 | 07.11.2016, 08:29 #
Подскажите пожалуйста куда вставлять названия полей таблиц?
ava
ivan2222 | 07.11.2016, 13:04 #
Я как понял получается так

DELETE org_out_2016_1.*
FROM org_out_2016_1
LEFT JOIN org_out_2016_2
  ON  org_out_2016_1.pfr=org_out_2016_2.pfr
  AND org_out_2016_1.cat_id=org_out_2016_52.cat_id
  AND org_out_2016_1.type_open=org_out_2016_52.type_open
WHERE org_out_2016_2.id IS NULL

ava
Akina | 07.11.2016, 15:02 #
Похоже. Только в условии связывания у тебя лишние пятёрки...
ava
ivan2222 | 18.11.2016, 12:04 #
Подскажите а возможно ли это осуществить в программе написаной в делфи? Я не очень разбираюсь в программировании, помогите пожалуйста!
ava
Akina | 18.11.2016, 12:05 #
Какая разница, на чём написано приложение? можно, есссно.
ava
ivan2222 | 18.11.2016, 12:21 #
тоесть и без программы запрос будет работать?
ava
ivan2222 | 18.11.2016, 12:49 #
как я понял такой запрос удаляет строки в которых нет какого либо поля из этих 3 по которым осуществляется отбор?
ava
ivan2222 | 18.11.2016, 13:10 #
Запрос почему то на первой строчке выдает ошибку Invalid use of keyword.
ava
Akina | 18.11.2016, 13:30 #
Цитата (ivan2222 @  18.11.2016,  14:10 findReferencedText)
на первой строчке выдает ошибку Invalid use of keyword. 

Сообщение об ошибке следует цитировать ПОЛНОСТЬЮ. А заодно рассказывать, где и как именно запрос запускается на исполнение.
ava
ivan2222 | 18.11.2016, 13:40 #
Запрос запускается в Database Explorer
Полное сообщение ошибки
Invalid use of keyword.
Token org_out_2016_1
FROM
Line Number: 1
ava
Akina | 18.11.2016, 13:44 #
Возможно, нужно использовать просто синтаксис без указания, из какой таблицы выполняется удаление. Просто DELETE FROM и далее по тексту. Но лучше почитать справку по Database Explorer - ну чтобы случайно не угрохать записи из обеих таблиц.
ava
ivan2222 | 18.11.2016, 15:18 #
Удаление из первой таблицы, а данные из второй остаются в первой.
ava
ivan2222 | 21.11.2016, 08:37 #
Подскажите, как это сделать?
ava
ivan2222 | 21.11.2016, 09:53 #
Подскажите, это как синтаксис без указания из какой таблицы?
ava
ivan2222 | 21.11.2016, 11:03 #
Убрал после delet название таблицы теперь та же ошибка на LEFT в третей строке.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  Akina   ivan2222
advanced
Absenden