powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
10 сообщений из 10, страница 1 из 1
Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
    #39292614
Arhirru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Помогите пожалуйста решить проблему! Есть база Access, в ней запрос qdfOcenka, основанный на таблице tblOcenka. Запрос выдаёт дублированные записи, хотя в основной таблице дубляжа нет. Причём дублируются все поля, включая ID. Подскажите пожалуйста, от чего это может быть и как сделать так, что бы этого больше не было?
...
Рейтинг: 0 / 0
Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
    #39292631
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В некоем запросе на основании какой-то таблицы дубликаты появляются - почему-то...

Мало данных для осмысленного ответа.
...
Рейтинг: 0 / 0
Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
    #39292640
Arhirru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

А какие данные нужны для осмысленного ответа? Саму базу скинуть? Или что нужно-то?
...
Рейтинг: 0 / 0
Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
    #39292646
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем всю базу? Желательно видеть таблицу tblOcenka, и сам запрос qdfOcenka. Было бы хорошо так же увидеть скрин результата запроса с примером дубляжа. Потому что пока при минимуме данных слишком много вариантов, бессмысленно заниматься гаданиями и тут расписывать свои умняки ;)
...
Рейтинг: 0 / 0
Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
    #39292651
Arhirru запрос qdfOcenka, основанный на таблице tblOcenka. Запрос выдаёт дублированные записи Так не бывает. Вероятно запрос строится не на одной, а на нескольких таблицах. И связь между таблицами 1 ко многим как минимум.

Текст запроса в студию...
...
Рейтинг: 0 / 0
Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
    #39292684
Arhirru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну да, подсчитала, аж на трёх таблицах основано
qdfOcenki:
SELECT tblOcenka.ID, tblOcenka.DateZakaz, tblOcenka.ContactZakazchik, tblOcenka.StoimostDog, tblOcenka.Dogovor, tblOcenka.ClientID, tblOcenka.Zakazchik, tblOcenka.TipObecta, tblMain.Client AS OtKogoCalc, tblOcenka.SummVozvrat, tblOcenka.VozvratKomment, tblMain.FIO AS OtKogoFIOCalc, tblOcenka.Sotrudnik, tblOcenka.Status, tblOcenka.DateBezNal, tblOcenka.StoimostSchet, tblOcenka.DataNal, tblOcenka.SummDolg, tblOcenka.SummNalVsego, tblOcenka.DateDogovor, tblOcenka.Sobitie1, tblOcenka.Buhgalteru, tblOcenka.DateAct, tblMemorandum.Vozvrat AS VozvratCalc, tblMemorandum.OtKogoVozvrat AS OtKogoVozvratCalc, tblMemorandum.OtKogo AS OtKogoCalc2, tblOcenka.SummVozvrat2, (summnalvsego+stoimostdog+stoimostschet-summvozvrat)*otkogoVozvratCalc AS Field10Calc, (summnalvsego+stoimostdog+stoimostschet)*VozvratCalc AS Field11Calc, tblOcenka.SummRecenziya, tblOcenka.DateVozvrat, tblOcenka.DateVozvrat2, tblMain.Napravlenie AS NapravlenieCalc, tblOcenka.TypeObject, tblOcenka.AdressObject, tblOcenka.Region, tblOcenka.KomuFIO, tblOcenka.ShortFio, tblOcenka.Field12, tblOcenka.DateOcenku, tblOcenka.CelevoeNaznach, tblOcenka.KadastrNomer, tblOcenka.PloschadZemli, tblOcenka.Kolvoobjekt, tblOcenka.Kolvoskoef, tblOcenka.OtdachaFin, tblOcenka.Primechanie, tblOcenka.OkpoKontr, tblOcenka.PoluchenoRM, tblOcenka.PoluchnaKartu, tblOcenka.BeznalRs, tblOcenka.SoderzhOperac, tblOcenka.UchastieOp, tblOcenka.Process, SummDolg-StoimostSchet-StoimostDog-SummNalVsego-SummRecenziya AS DolgCalc, tblOcenka.Partner, tblOcenka.OplPartner
FROM (tblOcenka LEFT JOIN tblMain ON tblOcenka.ClientID = tblMain.ID) LEFT JOIN tblMemorandum ON tblOcenka.ClientID = tblMemorandum.ClientID;
...
Рейтинг: 0 / 0
Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
    #39292688
Arhirru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сразу уточню, база делалась не мной. Мне просто поставлена задача избавиться от дубляжа записей, появляющегося при добавлении новой.
...
Рейтинг: 0 / 0
Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
    #39292728
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну напостил соплей... трудно было отформатировать?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
SELECT tblOcenka.ID
     , tblOcenka.DateZakaz
	 , tblOcenka.ContactZakazchik
	 , tblOcenka.StoimostDog
	 , tblOcenka.Dogovor
	 , tblOcenka.ClientID
	 , tblOcenka.Zakazchik
	 , tblOcenka.TipObecta
	 , tblMain.Client AS OtKogoCalc
	 , tblOcenka.SummVozvrat
	 , tblOcenka.VozvratKomment
	 , tblMain.FIO AS OtKogoFIOCalc
	 , tblOcenka.Sotrudnik
	 , tblOcenka.Status
	 , tblOcenka.DateBezNal
	 , tblOcenka.StoimostSchet
	 , tblOcenka.DataNal
	 , tblOcenka.SummDolg
	 , tblOcenka.SummNalVsego
	 , tblOcenka.DateDogovor
	 , tblOcenka.Sobitie1
	 , tblOcenka.Buhgalteru
	 , tblOcenka.DateAct
	 , tblMemorandum.Vozvrat AS VozvratCalc
	 , tblMemorandum.OtKogoVozvrat AS OtKogoVozvratCalc
	 , tblMemorandum.OtKogo AS OtKogoCalc2
	 , tblOcenka.SummVozvrat2
	 , (summnalvsego+stoimostdog+stoimostschet-summvozvrat)*otkogoVozvratCalc AS Field10Calc
	 , (summnalvsego+stoimostdog+stoimostschet)*VozvratCalc AS Field11Calc
	 , tblOcenka.SummRecenziya
	 , tblOcenka.DateVozvrat
	 , tblOcenka.DateVozvrat2
	 , tblMain.Napravlenie AS NapravlenieCalc
	 , tblOcenka.TypeObject
	 , tblOcenka.AdressObject
	 , tblOcenka.Region
	 , tblOcenka.KomuFIO
	 , tblOcenka.ShortFio
	 , tblOcenka.Field12
	 , tblOcenka.DateOcenku
	 , tblOcenka.CelevoeNaznach
	 , tblOcenka.KadastrNomer
	 , tblOcenka.PloschadZemli
	 , tblOcenka.Kolvoobjekt
	 , tblOcenka.Kolvoskoef
	 , tblOcenka.OtdachaFin
	 , tblOcenka.Primechanie
	 , tblOcenka.OkpoKontr
	 , tblOcenka.PoluchenoRM
	 , tblOcenka.PoluchnaKartu
	 , tblOcenka.BeznalRs
	 , tblOcenka.SoderzhOperac
	 , tblOcenka.UchastieOp
	 , tblOcenka.Process
	 , SummDolg-StoimostSchet-StoimostDog-SummNalVsego-SummRecenziya AS DolgCalc
	 , tblOcenka.Partner
	 , tblOcenka.OplPartner
FROM (    tblOcenka 
LEFT JOIN tblMain ON tblOcenka.ClientID = tblMain.ID) 
LEFT JOIN tblMemorandum ON tblOcenka.ClientID = tblMemorandum.ClientID;


Если при связывании одной записи из tblOcenka соответствуют две или более записей из tblMain и/или tblMemorandum, то появление дубликатов ПО ПОЛЯМ ИЗ ТАБЛИЦЫ tblOcenka - это не просто нормальное, но и обязательное состояние. Но при этом в разных записях-"дубликатах" содержатся РАЗНЫЕ данные, взятые из других таблиц - т.е. полные записи, возвращаемые запросом, дубликатами НЕ ЯВЛЯЮТСЯ. Даже если чисто случайно в полях из остальных таблиц значения в разных записях равны.
И такой результат - ПРАВИЛЬНЫЙ.

Arhirruзадача избавиться от дубляжа записей, появляющегося при добавлении новой
Эммм... что-то про добавление раньше ничего не говорилось... куда, что и как добавляется? и при чём тут "дубликаты в запросе"?
...
Рейтинг: 0 / 0
Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
    #39292741
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самое первое впечатление - неправильная структура базы. Как следствие - в таблицах избыточность данных, запрос такого же уровня организации, отсюда и косяки. По хорошему - надо переделывать практически всё.
ПыСы: казалось бы - хочешь получить быстрое и полное решение вопроса - дай в архиве сам образец базы: названные три таблицы (как оказалось - всё же три, хотя в первоначальной постановке вопроса речь шла об одной) с несколькими записями (даже вообще левыми), и тогда только сам запрос. Так нет же, обязательно устроить мееееедленный стриптиз с поочерёдным подкидыванием инфы и игрой в угадайку., смотреть на эти 11 строк с названиями полей и виртуально гадать, что там и как - потому как без самих таблиц работу запроса не проверить. А набивать самому таблицы, записи - лень.
...
Рейтинг: 0 / 0
Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
    #39292752
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о, на сцене появился ещё один запрос - на добавление. Стриптиз в разгаре ))) И опять гадания: сказано "при добавлении новой". А точно только один запрос участвует в добавлении? И нет ли к нему "прицепа" в виде, допустим, запросов на обновление, удаление и так далее?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему происходит дубляж записей с одина ID и как сделать, что бы больше не дублировалось?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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