powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Дублирование записей
16 сообщений из 16, страница 1 из 1
Дублирование записей
    #32723479
Мурат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю с помощью CREATE TABLE N / INSERT INTO N объединенную таблицу, куда из трех других вставляются строки. Все бы хорошо, но почему-то часть строчек дублируется. Уменьшил количество записей, вставляемых в таблицу - глюк пропал. Но нужны-то все записи... Кто знает, как с этим бороться?

------------------------------------------
А клава все стучала, а мышка все бегала...
...
Рейтинг: 0 / 0
Дублирование записей
    #32723496
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственное решение - это првильно составить запрос ...
...
Рейтинг: 0 / 0
Дублирование записей
    #32723529
Мурат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Первый запрос:

SELECT [N].Статус, [N].ВидОбъекта, [N].ЦПокупателя, [N].Агенты, [N].ДСтатус, INTO temp
FROM N INNER JOIN [Личная карточка] ON [N].Агенты = [Личная_карточка].FIO;

Второй запрос (третий такой же, только с именем другой таблы):

INSERT INTO temp ( Статус, ВидОбъекта, ЦПокупателя, Агенты, ДСтатус,)
SELECT [sec].Статус, [sec].ВидОбъекта, [sec].ЦПокупателя, [sec].Агенты, [sec].ДСтатус
FROM sec INNER JOIN [Личная карточка] ON [sec].Агенты = [Личная_карточка].FIO;


------------------------------------------
А клава все стучала, а мышка все бегала...
...
Рейтинг: 0 / 0
Дублирование записей
    #32723568
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык - может у Вас в этих 3-х таблицах есть повторяющиеся записи?

Для решения вашей проблемы - я бы посоветовал все три селекта склеить в один запрос через UNION (не путать с UNION ALL )
...
Рейтинг: 0 / 0
Дублирование записей
    #32723590
Мурат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Повторяющихся записей нет точно. Проверял ручками. SELECT DISTINCTROW в запросы вставлял - то же самое. UNION сейчас проверю, спасибо.
...
Рейтинг: 0 / 0
Дублирование записей
    #32723600
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МуратПовторяющихся записей нет точно. Проверял ручками. SELECT DISTINCTROW в запросы вставлял - то же самое. UNION сейчас проверю, спасибо.

Дык - вы дистинктом проверяли уникальность в пределах одного запроса (таблицы)
А вот после трех инсертов вы эти данные слили в одну таблицу и получили дубли (которые, возможно располагались в разных таблицах)
...
Рейтинг: 0 / 0
Дублирование записей
    #32723624
Мурат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UNION желаемого результата не принес. В таблицах разное число столбцов, и в этом вся загвоздка. Конечно, можно было бы создать в таблицах, где нет нужных столбцов, эти самые столбцы. Но сами таблицы изменять нельзя. Они присоединены из 4 соседних баз, каждая в своем формате. Вот и приходится создавать временную таблицу, где издеваюсь над приведением данных в один вид.
------------------------------------------
А клава все стучала, а мышка все бегала...
...
Рейтинг: 0 / 0
Дублирование записей
    #32723628
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да кстати и DISNINCTROW вполне может идентичные строки вставить в запрос.

--
Regards
Alexander Artamonov


"paparome" <nospam@sql.ru>; сообщил/сообщила в новостях следующее:
news:1008781@sql.ru...
Мурат
Повторяющихся записей нет точно. Проверял ручками. SELECT DISTINCTROW в
запросы вставлял - то же самое. UNION сейчас проверю, спасибо.


Дык - вы дистинктом проверяли уникальность в пределах одного запроса
(таблицы)
А вот после трех инсертов вы эти данные слили в одну таблицу и получили
дубли (которые, возможно располагались в разных таблицах)

Тема Ответить

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
Дублирование записей
    #32723633
Мурат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Pararome: Этого быть не может в принципе. Я ж говорю, ручками проверял. В каждой табле ТОЛЬКО уникальные записи, которых нет в других таблицах, а при вставке откуда-то берутся дубли.
------------------------------------------
А клава все стучала, а мышка все бегала...
...
Рейтинг: 0 / 0
Дублирование записей
    #32723659
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МуратUNION желаемого результата не принес. В таблицах разное число столбцов, и в этом вся загвоздка. Конечно, можно было бы создать в таблицах, где нет нужных столбцов, эти самые столбцы. Но сами таблицы изменять нельзя. Они присоединены из 4 соседних баз, каждая в своем формате. Вот и приходится создавать временную таблицу, где издеваюсь над приведением данных в один вид.
------------------------------------------
А клава все стучала, а мышка все бегала...

Код: plaintext
1.
2.
3.
4.
5.
6.
Insert Into T0 (A, B)

Select f1, f2 From T1
Union
Select f1, Null as B From T2
Union
Select Null as A, f2 From T3

Этот пример призван показать, что поля можно добавлять не в таблу, а просто в запросе вместо недостающих выводить константы
...
Рейтинг: 0 / 0
Дублирование записей
    #32723685
Мурат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
paparome МуратUNION желаемого результата не принес. В таблицах разное число столбцов, и в этом вся загвоздка. Конечно, можно было бы создать в таблицах, где нет нужных столбцов, эти самые столбцы. Но сами таблицы изменять нельзя. Они присоединены из 4 соседних баз, каждая в своем формате. Вот и приходится создавать временную таблицу, где издеваюсь над приведением данных в один вид.


Код: plaintext
1.
2.
3.
4.
5.
6.
Insert Into T0 (A, B)

Select f1, f2 From T1
Union
Select f1, Null as B From T2
Union
Select Null as A, f2 From T3

Этот пример призван показать, что поля можно добавлять не в таблу, а просто в запросе вместо недостающих выводить константы

Маленький, но забавный нюанс - а если поля по типу не совпадают? У меня в Одной таблице поле Агенты text(250), во второй text (255), в одной ЦПокупателя byte, а в четвертой как text(25). Тут не только в разнице числа полей дело.
...
Рейтинг: 0 / 0
Дублирование записей
    #32723768
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А проверить свой ньюанс в жизни вы пробовали?
...
Рейтинг: 0 / 0
Дублирование записей
    #32723771
Мурат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал. Акцесс меня послал. Далеко и сердито. У половины записей поля с несовпадающими типами были пусты. с частично совпадающими - обрезаны.
------------------------------------------
А клава все стучала, а мышка все бегала...
...
Рейтинг: 0 / 0
Дублирование записей
    #32725649
Мурат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел-таки ошибку. Почему-то
INSERT INTO temp ( Статус, ВидОбъекта, ЦПокупателя, Агенты, ДСтатус,)
SELECT [sec].Статус, [sec].ВидОбъекта, [sec].ЦПокупателя, [sec].Агенты, [sec].ДСтатус
FROM sec;

работает верно,
а
INSERT INTO temp ( Статус, ВидОбъекта, ЦПокупателя, Агенты, ДСтатус,)
SELECT [sec].Статус, [sec].ВидОбъекта, [sec].ЦПокупателя, [sec].Агенты, [sec].ДСтатус
FROM sec INNER JOIN [Личная карточка] ON [sec].Агенты = [Личная_карточка].FIO;

возвращает часть записей дублированными :(
Ниччего не понимаю... (с) Колобки
------------------------------------------
А клава все стучала, а мышка все бегала...
...
Рейтинг: 0 / 0
Дублирование записей
    #32725888
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МуратНашел-таки ошибку. Почему-то
INSERT INTO temp ( Статус, ВидОбъекта, ЦПокупателя, Агенты, ДСтатус,)
SELECT [sec].Статус, [sec].ВидОбъекта, [sec].ЦПокупателя, [sec].Агенты, [sec].ДСтатус
FROM sec;

работает верно,
а
INSERT INTO temp ( Статус, ВидОбъекта, ЦПокупателя, Агенты, ДСтатус,)
SELECT [sec].Статус, [sec].ВидОбъекта, [sec].ЦПокупателя, [sec].Агенты, [sec].ДСтатус
FROM sec INNER JOIN [Личная карточка] ON [sec].Агенты = [Личная_карточка].FIO;

возвращает часть записей дублированными :(
Ниччего не понимаю... (с) Колобки
------------------------------------------
А клава все стучала, а мышка все бегала...

Значит в таблице [Личная_карточка] есть записи с одинаковыми FIO
Я просто в этом уверен :)
...
Рейтинг: 0 / 0
Дублирование записей
    #32725963
Мурат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гмм... Действительно.... Об этом я как-то не подумал. Большое юзверьское спасибо!
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Дублирование записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]