|
|
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
Привет всем, помогите решить такую проблемку. Есть два объединенных запроса. Вот sql-код: SELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта, Контакты.Сотрудник, Контакты.НазваниеКомпании, Контакты.ТемаСледКонтакта, звонки.Заметки FROM Контакты INNER JOIN звонки ON Контакты.КодКонтакта = звонки.КодКонтакта WHERE (((Контакты.ДатаСледКонтакта)>0) AND ((звонки.ДатаЗвонка)=[ДатаСледКонтакта])) ORDER BY Контакты.ДатаСледКонтакта UNION SELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта, Контакты.Сотрудник, Контакты.НазваниеКомпании, Контакты.ТемаСледКонтакта, 0 AS Результат FROM Контакты WHERE (((Контакты.ДатаСледКонтакта)>0)) ORDER BY Контакты.ДатаСледКонтакта; Как исключить записи с повторяющимся значением поля Контакты.КодКонтакта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 14:19:09 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
Повторяющиеся значения устраняются группировкой group by ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 14:26:46 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
авторПовторяющиеся значения устраняются группировкой group by Не думаю ,что здесь это поможет. А автору не мешало бы объяснить ,чего он хочет достигнуть своим запросом. ИМХО того же результата можно достичь более простым путём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 14:48:30 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
Использовать "SELECT DISTINCT" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 14:55:07 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
Пачиму не поможит? Автору по барабану какой контакт. Его устраивает любой. пишем Select КодКонтакта,Max(Сотрудник),Max(ВсякаяДругаяЛабуда) From ЕгоЗапросСЮнионом Groub by КодКонтакта И зашибись:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 14:58:22 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
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 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:03:26 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
Ой, правда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:05:38 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
2 paparome Ну Shark-у же "по барабану" :))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:08:19 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
(c)VIG2 paparome Ну Shark-у же "по барабану" :))) А автору? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:09:16 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
Автору ,похоже ,уже всё "по барабану" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:15:59 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:16:59 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
На бейсике проще написать:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:21:52 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
судя по запросу SELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта, Контакты.Сотрудник, Контакты.НазваниеКомпании, Контакты.ТемаСледКонтакта, звонки.Заметки ... дублирование идет из-за одного поля остальный из таблицы Контакты А вот на одно поле - можно и агрегат применить :) А по остальным group by Так что вариант от Shark в данном случае имеет право на жизнь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:25:50 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
автор----сохраняем как запрос q1 Потом пишем select distinct * from q1 Нет слов. На х..., в общем зачем? Union сам убирает дубликаты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:27:01 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
(c)VIG автор----сохраняем как запрос q1 Потом пишем select distinct * from q1 Нет слов. На х..., в общем зачем? Union сам убирает дубликаты. Нах тут Union - вот в чем вопрос? или челу надо вывести запись вне зависимости - есть связь в таблице звонки или нет? Так для этого есть Left Join - или я опять не в тему? ЗЫ: Трудно "зеленые" запросы читать, уж лучще [ SRC ] :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:31:01 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
2 paparome Посмотри внимательно на запрос -убедишься в его бесмыслености.Поэтому и хотелось знать ,а что всё таки надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:34:09 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
(c)VIG2 paparome Посмотри внимательно на запрос -убедишься в его бесмыслености.Поэтому и хотелось знать ,а что всё таки надо. нет - смысл здесь углядеть можно ИМХО: человеку надо вывести все контакты и разговор на указанную дату с ними но: - разговора могло и не быть, а контакт надо вывести в любом случае - человек не знает про Left Join, но знает про Union Вот и добавил еще запросец, что бы контакты не "терялись" :) и тут случилось страшное - затык, записи, где разговор был, стали двоиться :( И чел. пришел к нам :) Все это я придумал, внимательно посмотрев на запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:41:37 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
SELECT t1.* FROM Таблица1 t1 Where Id In (Select Top 1 Id From Таблица1 t2 Where t1.КодКонтакта=t2.КодКонтакта); Вот так похоже пашет. Id- ключ. Если нет- надо завести. Например, загрузить в таблицу со счетчиком 2(c)VIG Пачиму такой злой? Живот болит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:42:20 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
1. Похоже paparome прав и запросец можно переписать как SELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта, Контакты.Сотрудник, Контакты.НазваниеКомпании, Контакты.ТемаСледКонтакта, звонки.Заметки FROM Контакты LEFT JOIN звонки ON Контакты.КодКонтакта = звонки.КодКонтакта WHERE (((Контакты.ДатаСледКонтакта)>0) AND ((звонки.ДатаЗвонка)=[ДатаСледКонтакта])) ORDER BY Контакты.ДатаСледКонтакта 2. Если внимательно смотреть на исходник, то там еще одна закавыка есть: разные поля в запросах ... Контакты.ТемаСледКонтакта, звонки.Заметки и ... Контакты.ТемаСледКонтакта, 0 AS Результат Акс обычно давится на таких местах ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:51:31 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
автор2. Если внимательно смотреть на исходник, то там еще одна закавыка есть: разные поля в запросах ... Контакты.ТемаСледКонтакта, звонки.Заметки и ... Контакты.ТемаСледКонтакта, 0 AS Результат Акс обычно давится на таких местах ?! Да ну? А проверить? Поле будет назаваться по первому запросу, по сей причине вместо 0 AS Результат можно написать просто "0" as [как хочу так и называю, один фиг никто не увидит :)] с тем же результатом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:54:29 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
И ыще авторSELECT Контакты.КодКонтакта, Контакты.ДатаСледКонтакта, Контакты.Сотрудник, Контакты.НазваниеКомпании, Контакты.ТемаСледКонтакта, звонки.Заметки FROM Контакты LEFT JOIN звонки ON Контакты.КодКонтакта = звонки.КодКонтакта WHERE (((Контакты.ДатаСледКонтакта)>0) AND ((звонки.ДатаЗвонка)=[ДатаСледКонтакта])) ORDER BY Контакты.ДатаСледКонтакта то что во WHERE, по крайней мере ((звонки.ДатаЗвонка)=[ДатаСледКонтакта]) надо в ON перенести, а то весь эффект от Left Join коту под хвост :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 15:56:31 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
paparomeВсе это я придумал... Rivkin DmitryПохоже paparome прав Кто еще? Всё это гадания на кофейной гуще. Автор! Ау! И где ты? авторчеловек не знает про Left Join, но знает про Union :))) :))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 16:05:00 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
(c)VIG авторчеловек не знает про Left Join, но знает про Union :))) :))) Есть более разумное объяснение? У меня нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 16:09:11 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за помощь, особенно paparome, его идея сработала... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 14:17:48 |
|
||
|
Как устранить дублирование строк в объединенном запросе
|
|||
|---|---|---|---|
|
#18+
Alexandr_NNovgorodВсем спасибо за помощь, особенно paparome, его идея сработала... Эх. Мне бы вашу уверенность :( Я после вот этого Вернемся к нескольким условиям в join Уже ни чему не верю :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 14:25:28 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1605&tid=1673617]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 361ms |

| 0 / 0 |
