Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQL-запрос без повторения записей, Как избавиться от дублирования записей? 
:(
    Опции темы
SareN
Дата 27.8.2009, 05:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 25.8.2009

Репутация: нет
Всего: нет



Значит у мня следующий вопрос:

У меня есть 3 таблицы:
__________________________________________________________
1. Номенклатура
__________________________________________________________
НАЗВАНИЕ                          ВИД                                БРЕНД
LG-1530                      Стиральная машина                       LG
Sony Ericsson z550i      Сотовый телефон                 Sony Ericsson
HP Deskjet D1360             Принтер                                    HP
Acer AL1916                      Монитор                                   Acer
Samsung ES10                Фотокамера                            Samsung
__________________________________________________________
2. Клиенты
__________________________________________________________
ФИО                                                 АДРЕС                             ТЕЛЕФОН
Иванов Степан Анатольевич        Северная,22-1                       3-45-12
Кузнецова Вероника Павловна    Алтайская,70-4                 923-648-12-13
Мельников Сергей Алексеевич     Федоренко,12-23            913-177-10-91
Аброськин Евгений Сергеевич     Тихвинская,34-15                  3-72-38
Иванов Степан Анатольевич        Алтайская,56-80                    4-65-76

____________________________________________________________________________________
3. Сводная
____________________________________________________________________________________
НОМЕНКЛАТУРА    КОЛИЧЕСТВО                 КЛИЕНТ                               ДАТА ПРИЁМА           МАСТЕР
LG-1530                              1            Кузнецова Вероника Павловна          12/14/08                  Абдулов
Sony Ericsson z550i            1            Мельников Сергей Алексеевич           02/28/09                 Струков
HP Deskjet D1360               1            Иванов Степан Анатольевич              03/24/09                 Абдулов
Acer AL1916                        1            Иванов Степан Анатольевич              03/25/09                  Волков
Samsung ES10                    1            Аброськин Евгений Сергеевич           04/12/09                 Струков
____________________________________________________________________________________

Как видно в клиентах имеются 2 полных тёски (Иванов Степан Анатольевич), но разные адреса!
Мне нужно после запроса по ФИО клиента (Иванов Степан Анатольевич) выдать следующее:
____________________________________________________________________________________
НОМЕНКЛАТУРА    КОЛИЧЕСТВО                 КЛИЕНТ                               ДАТА ПРИЁМА           МАСТЕР
HP Deskjet D1360               1            Иванов Степан Анатольевич              03/24/09                 Абдулов
Acer AL1916                        1            Иванов Степан Анатольевич              03/25/09                  Волков
____________________________________________________________________________________

А он выдает следующее:
____________________________________________________________________________________
НОМЕНКЛАТУРА    КОЛИЧЕСТВО                 КЛИЕНТ                               ДАТА ПРИЁМА           МАСТЕР
HP Deskjet D1360               1            Иванов Степан Анатольевич              03/24/09                 Абдулов
Acer AL1916                        1            Иванов Степан Анатольевич              03/25/09                  Волков
HP Deskjet D1360               1            Иванов Степан Анатольевич              03/24/09                 Абдулов
Acer AL1916                        1            Иванов Степан Анатольевич              03/25/09                  Волков
____________________________________________________________________________________
короче такой вот повтор!! Как этого избежать???
ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО!!!!
PM MAIL   Вверх
pavelv
Дата 27.8.2009, 05:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Кинь запрос которые сам пишешь. Есть уникальное поле у таблицы с людьми?
PM MAIL   Вверх
SareN
Дата 27.8.2009, 05:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 25.8.2009

Репутация: нет
Всего: нет



Вот мой запрос по фамилии Имени Отчеству:

SELECT DISTINCT c.fio,c.adres,c.telefon,a.nomen,a.vid,a.brend,b.kolich,b.d_priem,b.d_konec,b.d_vidacha,b.sost,b.master,b.n_priem,b.n_vidacha
FROM db\nomen as a, db\svod as b, db\klient as c
WHERE (a.nomen=b.nomen) and (b.klient=c.fio) and (c.fio=:fio)
ORDER BY d_priem

А вот проседура обработки нажатии клавиши [Выполнить поиск]:

     try
          Query1.Active:=false;
          Query1.ParamByName('fio').AsString:=ComboBox1.Text;
          Query1.Active:=true;

     except
        on error: EDatabaseError do begin
           MessageDlg('При выполнении запроса произошла ошибка:'+#13+#13+
           error.Message ,mtError,[mbOK],0);
        end;
     end;
     end;

Ключевое поле FIO в таблице с клиентами!!
PM MAIL   Вверх
pavelv
Дата 27.8.2009, 06:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Не пагади.
Есть вопрос тогда. 
Код

Иванов Степан Анатольевич        Северная,22-1                       3-45-12
Иванов Степан Анатольевич        Алтайская,56-80                    4-65-76

Два Ивановых так?
Код

HP Deskjet D1360               1            Иванов Степан Анатольевич              03/24/09                 Абдулов
Acer AL1916                        1            Иванов Степан Анатольевич              03/25/09                  Волков

Какой из тех двух покупает HP, а какой Acer? Тоесть ты можешь сказать что тот который покупает Acer - вот его телефон такой, а у другого...
PM MAIL   Вверх
SareN
Дата 27.8.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 25.8.2009

Репутация: нет
Всего: нет



Просто программа думает, что один из Ивановых покупает и ту и другую номенклатуру и второй из Ивановых покупает и ту и другую номенклатуру !!!

Но насамом деле же в таблице сводной информации : один покупает одно, другой - другое!
Мне же нужно, чтобы после запроса вывелись 2 записи разны Ивановых, а не 4!  
   Вот приблизительно так!!


PM MAIL   Вверх
vladimir74
Дата 27.8.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 28.11.2006

Репутация: 2
Всего: 3



SareN, так и будет :( 
введи в таблицу клиентов номер клиента (ID) и считай по нему...
--------------------
* В доме помешанного не говорят о миксере.* На любой Ваш вопрос у меня есть любой мой ответ.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.