powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как устранить дублирование строк в объединенном запросе
25 сообщений из 25, страница 1 из 1
Как устранить дублирование строк в объединенном запросе
    #32573845
Alexandr_NNovgorod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем, помогите решить такую проблемку. Есть два объединенных запроса. Вот sql-код:
SELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта,
Контакты.Сотрудник, Контакты.НазваниеКомпании,
Контакты.ТемаСледКонтакта, звонки.Заметки
FROM Контакты
INNER JOIN звонки ON Контакты.КодКонтакта = звонки.КодКонтакта
WHERE (((Контакты.ДатаСледКонтакта)>0) AND ((звонки.ДатаЗвонка)=[ДатаСледКонтакта]))
ORDER BY Контакты.ДатаСледКонтакта
UNION
SELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта,
Контакты.Сотрудник, Контакты.НазваниеКомпании,
Контакты.ТемаСледКонтакта, 0 AS Результат
FROM Контакты
WHERE (((Контакты.ДатаСледКонтакта)>0))
ORDER BY Контакты.ДатаСледКонтакта;
Как исключить записи с повторяющимся значением поля Контакты.КодКонтакта?
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32573864
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторяющиеся значения устраняются группировкой
group by
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32573924
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПовторяющиеся значения устраняются группировкой
group by
Не думаю ,что здесь это поможет.
А автору не мешало бы объяснить ,чего он хочет достигнуть своим запросом.
ИМХО того же результата можно достичь более простым путём.
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32573949
iks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iks
Гость
Использовать "SELECT DISTINCT"
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32573958
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пачиму не поможит?
Автору по барабану какой контакт. Его устраивает любой. пишем

Select КодКонтакта,Max(Сотрудник),Max(ВсякаяДругаяЛабуда)
From ЕгоЗапросСЮнионом
Groub by КодКонтакта

И зашибись:-)
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32573978
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharkПачиму не поможит?
Автору по барабану какой контакт. Его устраивает любой. пишем

Select КодКонтакта,Max(Сотрудник),Max(ВсякаяДругаяЛабуда)
From ЕгоЗапросСЮнионом
Groub by КодКонтакта

И зашибись:-)

тбл КЛ (id_firm*, id*, FIO, tel) * = PK
1, 1, 123, 321
1, 2, 321, 123
1, 3, 111, 111

select id_firm, max(id), max(fio), max(tel)
from ...
--------
1, 3, 321, 321

?
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32573984
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, правда
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32573992
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 paparome
Ну Shark-у же "по барабану" :)))
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32573997
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG2 paparome
Ну Shark-у же "по барабану" :)))

А автору?
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574017
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автору ,похоже ,уже всё "по барабану" :)
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574022
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandr_NNovgorod
SELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта,
Контакты.Сотрудник, Контакты.НазваниеКомпании,
Контакты.ТемаСледКонтакта, звонки.Заметки
FROM Контакты
INNER JOIN звонки ON Контакты.КодКонтакта = звонки.КодКонтакта
WHERE (((Контакты.ДатаСледКонтакта)>0) AND ((звонки.ДатаЗвонка)=[ДатаСледКонтакта]))
ORDER BY Контакты.ДатаСледКонтакта
UNION
SELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта,
Контакты.Сотрудник, Контакты.НазваниеКомпании,
Контакты.ТемаСледКонтакта, 0 AS Результат
FROM Контакты
WHERE (((Контакты.ДатаСледКонтакта)>0))
ORDER BY Контакты.ДатаСледКонтакта;
Контакты.КодКонтакта?----сохраняем как запрос q1

Потом пишем select distinct * from q1
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574043
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На бейсике проще написать:-)
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574053
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
судя по запросу

SELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта,
Контакты.Сотрудник, Контакты.НазваниеКомпании,
Контакты.ТемаСледКонтакта, звонки.Заметки
...

дублирование идет из-за одного поля
остальный из таблицы Контакты
А вот на одно поле - можно и агрегат применить :) А по остальным group by

Так что вариант от Shark в данном случае имеет право на жизнь :)
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574061
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор----сохраняем как запрос q1

Потом пишем select distinct * from q1
Нет слов. На х..., в общем зачем? Union сам убирает дубликаты.
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574074
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG автор----сохраняем как запрос q1

Потом пишем select distinct * from q1
Нет слов. На х..., в общем зачем? Union сам убирает дубликаты.

Нах тут Union - вот в чем вопрос?
или челу надо вывести запись вне зависимости - есть связь в таблице звонки или нет?

Так для этого есть Left Join - или я опять не в тему?

ЗЫ:

Трудно "зеленые" запросы читать, уж лучще [ SRC ] :)
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574089
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 paparome
Посмотри внимательно на запрос -убедишься в его бесмыслености.Поэтому и хотелось знать ,а что всё таки надо.
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574104
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG2 paparome
Посмотри внимательно на запрос -убедишься в его бесмыслености.Поэтому и хотелось знать ,а что всё таки надо.

нет - смысл здесь углядеть можно

ИМХО: человеку надо вывести все контакты и разговор на указанную дату с ними
но:
- разговора могло и не быть, а контакт надо вывести в любом случае
- человек не знает про Left Join, но знает про Union
Вот и добавил еще запросец, что бы контакты не "терялись" :)

и тут случилось страшное - затык, записи, где разговор был, стали двоиться :(

И чел. пришел к нам :)

Все это я придумал, внимательно посмотрев на запрос
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574106
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT t1.*
FROM Таблица1 t1
Where Id In (Select Top 1 Id From Таблица1 t2 Where t1.КодКонтакта=t2.КодКонтакта);
Вот так похоже пашет.
Id- ключ. Если нет- надо завести. Например, загрузить в таблицу со счетчиком

2(c)VIG
Пачиму такой злой? Живот болит?
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574130
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.
Похоже paparome прав и запросец можно переписать как

SELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта,
Контакты.Сотрудник, Контакты.НазваниеКомпании,
Контакты.ТемаСледКонтакта, звонки.Заметки
FROM Контакты
LEFT JOIN звонки ON Контакты.КодКонтакта = звонки.КодКонтакта
WHERE (((Контакты.ДатаСледКонтакта)>0) AND ((звонки.ДатаЗвонка)=[ДатаСледКонтакта]))
ORDER BY Контакты.ДатаСледКонтакта

2.
Если внимательно смотреть на исходник, то там еще одна закавыка есть:
разные поля в запросах
... Контакты.ТемаСледКонтакта, звонки.Заметки
и
... Контакты.ТемаСледКонтакта, 0 AS Результат
Акс обычно давится на таких местах ?!
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574140
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор2.
Если внимательно смотреть на исходник, то там еще одна закавыка есть:
разные поля в запросах
... Контакты.ТемаСледКонтакта, звонки.Заметки
и
... Контакты.ТемаСледКонтакта, 0 AS Результат
Акс обычно давится на таких местах ?!

Да ну?
А проверить?

Поле будет назаваться по первому запросу, по сей причине вместо
0 AS Результат можно написать просто "0" as [как хочу так и называю, один фиг никто не увидит :)] с тем же результатом :)
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574148
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ыще

авторSELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта,
Контакты.Сотрудник, Контакты.НазваниеКомпании,
Контакты.ТемаСледКонтакта, звонки.Заметки
FROM Контакты
LEFT JOIN звонки ON Контакты.КодКонтакта = звонки.КодКонтакта
WHERE (((Контакты.ДатаСледКонтакта)>0) AND ((звонки.ДатаЗвонка)=[ДатаСледКонтакта]))
ORDER BY Контакты.ДатаСледКонтакта

то что во WHERE, по крайней мере ((звонки.ДатаЗвонка)=[ДатаСледКонтакта]) надо в ON перенести, а то весь эффект от Left Join коту под хвост :(
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574180
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparomeВсе это я придумал...
Rivkin DmitryПохоже paparome прав

Кто еще? Всё это гадания на кофейной гуще. Автор! Ау! И где ты?
авторчеловек не знает про Left Join, но знает про Union
:))) :)))
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32574189
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG авторчеловек не знает про Left Join, но знает про Union
:))) :)))

Есть более разумное объяснение?
У меня нет :)
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32575595
Alexandr_NNovgorod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за помощь, особенно paparome, его идея сработала...
...
Рейтинг: 0 / 0
Как устранить дублирование строк в объединенном запросе
    #32575608
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandr_NNovgorodВсем спасибо за помощь, особенно paparome, его идея сработала...

Эх. Мне бы вашу уверенность :(
Я после вот этого Вернемся к нескольким условиям в join

Уже ни чему не верю :(
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как устранить дублирование строк в объединенном запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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