|
Модераторы: Akella |
|
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Здравствуйте, помогите пожалуйста, есть 2 таблицы формата dbf с одинаковыми полями, требуется написать запрос что бы данные из одной таблицы отбирались в другой а лишнее удалялось, что бы отбор был по 3 столбцам.
таблицы это список жителей города, нужно отобрать по номеру страхового пенсионного, по категории льготника и по закрытой или открытой лготной категории тип N - открытая, или D - закрытая два файла формат файлов dbf, столбцы pfr, cat_id, type_open. тип полей Character. нужно что бы данные в первом файле остались теже что и во втором а лишние в первом файле удалились, отбор должен быть по 3 столбцам Запрос будет выполняться в Database Explorer |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 453 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Я прошу прощения за вопрос field1 это название файла, а t1 - это столбца?
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 453 |
Угу... только наоборот.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Как на оборот?
Добавлено через 1 минуту и 8 секунд А куда вписывать название столбца? |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 453 |
Это в Экселе столбцы. А в терминах баз данных это называется "поле". А по-буржуйски - field. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Получается для второго значения нужно после
WHERE t2.id IS NULL вставить то же самое только для второго значения? |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 453 |
Что такое "второе значение"?
В шаблоне однозначно указано, куда надо вносить корректировки. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Я имею ввиду куда вписывать название полей pfr, cat_id, type_open?
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 453 |
Так вроде выбора-то нет, всё слишком однозначно... не расстраивай. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Я прошу прощения подскажи пожалуйста куда вписывать названия полей? Я что то не понял.
|
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Подскажите пожалуйста куда вставлять названия полей таблиц?
|
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Я как понял получается так
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 |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 453 |
Похоже. Только в условии связывания у тебя лишние пятёрки...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Подскажите а возможно ли это осуществить в программе написаной в делфи? Я не очень разбираюсь в программировании, помогите пожалуйста!
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 453 |
Какая разница, на чём написано приложение? можно, есссно.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
тоесть и без программы запрос будет работать?
|
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
как я понял такой запрос удаляет строки в которых нет какого либо поля из этих 3 по которым осуществляется отбор?
|
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Запрос почему то на первой строчке выдает ошибку Invalid use of keyword.
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 453 |
Сообщение об ошибке следует цитировать ПОЛНОСТЬЮ. А заодно рассказывать, где и как именно запрос запускается на исполнение. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Запрос запускается в Database Explorer
Полное сообщение ошибки Invalid use of keyword. Token org_out_2016_1 FROM Line Number: 1 |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 453 |
Возможно, нужно использовать просто синтаксис без указания, из какой таблицы выполняется удаление. Просто DELETE FROM и далее по тексту. Но лучше почитать справку по Database Explorer - ну чтобы случайно не угрохать записи из обеих таблиц.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Удаление из первой таблицы, а данные из второй остаются в первой.
|
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Подскажите, как это сделать?
|
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Подскажите, это как синтаксис без указания из какой таблицы?
Добавлено через 7 минут и 34 секунды Дак как получится удаление если не указать от куда? |
|||
|
||||
ivan2222 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 3.11.2016 Репутация: нет Всего: нет |
Убрал после delet название таблицы теперь та же ошибка на LEFT в третей строке.
|
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Другие СУБД | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |