| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Другие СУБД > Отбор данных в двух таблицах dbf |
| Автор: ivan2222 3.11.2016, 09:19 |
| Здравствуйте, помогите пожалуйста, есть 2 таблицы формата dbf с одинаковыми полями, требуется написать запрос что бы данные из одной таблицы отбирались в другой а лишнее удалялось, что бы отбор был по 3 столбцам. таблицы это список жителей города, нужно отобрать по номеру страхового пенсионного, по категории льготника и по закрытой или открытой лготной категории тип N - открытая, или D - закрытая два файла формат файлов dbf, столбцы pfr, cat_id, type_open. тип полей Character. нужно что бы данные в первом файле остались теже что и во втором а лишние в первом файле удалились, отбор должен быть по 3 столбцам Запрос будет выполняться в Database Explorer |
| Автор: Akina 3.11.2016, 09:43 | ||
|
| Автор: ivan2222 3.11.2016, 09:59 |
| Я прошу прощения за вопрос field1 это название файла, а t1 - это столбца? |
| Автор: Akina 3.11.2016, 10:55 |
| Угу... только наоборот. |
| Автор: ivan2222 3.11.2016, 11:10 |
| Как на оборот? Добавлено через 1 минуту и 8 секунд А куда вписывать название столбца? |
| Автор: Akina 3.11.2016, 11:38 |
Это в Экселе столбцы. А в терминах баз данных это называется "поле". А по-буржуйски - field. |
| Автор: ivan2222 3.11.2016, 11:47 |
| Получается для второго значения нужно после WHERE t2.id IS NULL вставить то же самое только для второго значения? |
| Автор: Akina 3.11.2016, 13:04 |
| Что такое "второе значение"? В шаблоне однозначно указано, куда надо вносить корректировки. |
| Автор: ivan2222 3.11.2016, 14:50 |
| Я имею ввиду куда вписывать название полей pfr, cat_id, type_open? |
| Автор: Akina 3.11.2016, 15:19 |
Так вроде выбора-то нет, всё слишком однозначно... не расстраивай. |
| Автор: ivan2222 3.11.2016, 15:26 |
| Я прошу прощения подскажи пожалуйста куда вписывать названия полей? Я что то не понял. |
| Автор: ivan2222 7.11.2016, 08:29 |
| Подскажите пожалуйста куда вставлять названия полей таблиц? |
| Автор: ivan2222 7.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 |
| Автор: Akina 7.11.2016, 15:02 |
| Похоже. Только в условии связывания у тебя лишние пятёрки... |
| Автор: ivan2222 18.11.2016, 12:04 |
| Подскажите а возможно ли это осуществить в программе написаной в делфи? Я не очень разбираюсь в программировании, помогите пожалуйста! |
| Автор: Akina 18.11.2016, 12:05 |
| Какая разница, на чём написано приложение? можно, есссно. |
| Автор: ivan2222 18.11.2016, 12:21 |
| тоесть и без программы запрос будет работать? |
| Автор: ivan2222 18.11.2016, 12:49 |
| как я понял такой запрос удаляет строки в которых нет какого либо поля из этих 3 по которым осуществляется отбор? |
| Автор: ivan2222 18.11.2016, 13:10 |
| Запрос почему то на первой строчке выдает ошибку Invalid use of keyword. |
| Автор: Akina 18.11.2016, 13:30 |
Сообщение об ошибке следует цитировать ПОЛНОСТЬЮ. А заодно рассказывать, где и как именно запрос запускается на исполнение. |
| Автор: ivan2222 18.11.2016, 13:40 |
| Запрос запускается в Database Explorer Полное сообщение ошибки Invalid use of keyword. Token org_out_2016_1 FROM Line Number: 1 |
| Автор: Akina 18.11.2016, 13:44 |
| Возможно, нужно использовать просто синтаксис без указания, из какой таблицы выполняется удаление. Просто DELETE FROM и далее по тексту. Но лучше почитать справку по Database Explorer - ну чтобы случайно не угрохать записи из обеих таблиц. |
| Автор: ivan2222 18.11.2016, 15:18 |
| Удаление из первой таблицы, а данные из второй остаются в первой. |
| Автор: ivan2222 21.11.2016, 08:37 |
| Подскажите, как это сделать? |
| Автор: ivan2222 21.11.2016, 09:53 |
| Подскажите, это как синтаксис без указания из какой таблицы? Добавлено через 7 минут и 34 секунды Дак как получится удаление если не указать от куда? |
| Автор: ivan2222 21.11.2016, 11:03 |
| Убрал после delet название таблицы теперь та же ошибка на LEFT в третей строке. |