Сравнение двух DBF таблиц

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 661
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сравнение двух DBF таблиц

Сообщение gjghjc » 03.01.2006 (Вт) 17:56

Доброго времени суток всем.
Есть проблема нужно запросом выбрать из проверяемой таблицы данные
запрос типа
Код: Выделить всё
SELECT таблица1.Поле1 FROM Таблица1, Таблца2 WHERE таблица1.Поле1<>таблица2.Поле1
почему-то возвращает в рекордсете количество записей = произведению строк в обоих таблицах.
Подключаюсь к DBF при помощи DAO 3.51
ВОПРОС КАК ПРАВИЛЬНО ВЫБРАТЬ СТРОКИ ИЗ ТАБЛИЦА1 В КОТОРЫХ ПОЛЕ1 НЕ РАВНО ТАБЛИЦА2.ПОЛЕ1.
Заранее спасибо всем ответившим.
Утро добрым не бывает!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.01.2006 (Вт) 19:32

А КАК УЗНАТЬ, КАКАЯ СТРОКА С КАКОЙ ДОЛЖНА СРАВНИВАТЬСЯ?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 03.01.2006 (Вт) 22:45

Может быть что-то типа:
Код: Выделить всё

SELECT таблица1.Поле1
FROM таблица1
WHERE таблица1.Поле1 not in (select distinct таблица2.Поле1 from таблица2);

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 03.01.2006 (Вт) 23:30

VVitafresh писал(а):Может быть что-то типа:
Код: Выделить всё
SELECT таблица1.Поле1
FROM таблица1
WHERE таблица1.Поле1 not in (select distinct таблица2.Поле1 from таблица2);


ну, если, попытаться таким способом ответить на поставленный вопрос, то тогда это нужно сделать для всех столбцов.
Хотя, я думаю, как только фопрос будет правильно сформулирован, он либо разрешиться, либо отпадёт автоматически)))
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 661
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 06.01.2006 (Пт) 17:11

Ляпнул конечно не подумав.....
Корректирую вопрос.
Есть две таблицы в одной содержатся все данные о клиентах в том числе и номер счета, во второй номер счета и сумма для зачисления. Дело в том что файлы с суммами формируют люди.... а они могут сделать ошибку в наборе.
Поэтому мне нужно ЗАПРОСОМ выбрать из файла с суммами ВСЕ строки в которых поле с номером счета отсутствует в основном файле.
Вот... кажется сейчас по корректней будет. А что касается того что предложил VVitafresh ОБЛИЗАТЕЛЬНО попробую. Спасибо
Утро добрым не бывает!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.01.2006 (Пт) 17:45

Ну тогда тебе VVitafresh ответил.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 661
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 18.01.2006 (Ср) 11:10

Запрос предложенный VVitafresh РАБОТАЕТ.
Но дико медленно.... сравнение двух таблиц одна 1200 записей а вторая примерно 25000-30000 проходит за 2 мин.....
Можно как нибудь побыстрее??? :oops:
Утро добрым не бывает!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.01.2006 (Ср) 11:12

Можно.
Только для этого надо правильно проектировать приложение.
Lasciate ogni speranza, voi ch'entrate.

blinow
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 27.06.2005 (Пн) 3:13

Сообщение blinow » 20.01.2006 (Пт) 4:51

Согласен с alibek полностью.
Ведь как я понял первая таблица это справочник. Ну дак и проверяй при вводе во второй таблице наличие счета, а не потом при обработке.
Вообщето это элементарная реалиционная связь.
Ну и мое мнение какого черта dbf. Microsoft в свое время купило этот кошмар, что-бы его уничтожить, а врезультате все вылилось сами видите во что. :evil:

shady
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 09.11.2005 (Ср) 11:03

Сообщение shady » 24.01.2006 (Вт) 9:24

сравнение двух таблиц одна 1200 записей а вторая примерно 25000-30000 проходит за 2 мин.....
Можно как нибудь побыстрее???

индексы надо использовать...

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 24.01.2006 (Вт) 12:15

shady писал(а):
сравнение двух таблиц одна 1200 записей а вторая примерно 25000-30000 проходит за 2 мин.....
Можно как нибудь побыстрее???

индексы надо использовать...


Я думаю, все-таки пересмотреть подход к размещению данных по таблицам, проетированию самого приложения.
Такой запрос можно выполнить разок-другой, чтобы разгрести данные, отобрать нужные/ненужные и разнести их по таблицам. В повседневных операциях этого быть не должно.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 661
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 24.01.2006 (Вт) 17:20

2 Alibek Буду большое спасибо за помощь в реализации правильного проектирования приложения. Если можно, как сформулирую вопросы напишу в приват.
2 blinow
Ну дак и проверяй при вводе во второй таблице наличие счета, а не потом при обработке.
Это я сделать не могу так как данные набирают бухгалтера разных организаций и отдавать им всю базу счетов я не имею права... они имеют доступ только номерам счетов сотрудников своей организации... а что касается
Ну и мое мнение какого черта dbf.
от негативной реакции с моей стороны в Ваш адрес Вас спасло только "Ну и мое мнение..." :D
Утро добрым не бывает!


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList