Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.11.2010, 16:24
Zverek Zverek вне форума
Прохожий
 
Регистрация: 29.11.2010
Сообщения: 1
Репутация: 10
Восклицание Совпадения в DB

Всем, доброго времени суток! Я студент (специальность менеджер), и по этому прошу помочь с задачой с которой первый раз столкнулся. Это SQL. Имеется база данных книг, каждая книга имеет свой собственный универсальный номер который записан в столбце kod_kn. Но народ составлявший БД сделал повторения многих книг. Задача заключается в том что бы с помощью SQL запросов найти совпадения в БД по коду/названию (столбец под названием nazv_kn), и вывести все совпадения во второй DBGrid или ChekListBox. или и туда и туда. И сделать возможным удаления совпадений. Например если число 5 повторяется 10 раз, то 9 повторений он должен удалить а 1 оставить. С этим я бы наверно разобрался, если бы был программистом, а не менеджером. Не смотря на это у нас преподают программирование в делфи 7. Я немного основных, приколов знаю, но...
Ответить с цитированием
  #2  
Старый 30.11.2010, 18:32
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Примерно так найдутся совпадения по названию книги:
Код:
select * from t_name t
where (select count(*) from t_name t2 where t2.nazv_kn= t.nazv_kn)>1
Ответить с цитированием
  #3  
Старый 30.11.2010, 19:48
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Задача может оказаться не такой простой как кажется. Какая структура вашей БД? Есть ли связи вашей таблицы книг с другими таблицами по ключу kod_kn?
Получить же все повторы можно просто:
Код:
select Count(*), nazv_kn from books
group by nazv_kn
having count(*)>1
А вобще, это серьезная ошибка проектирования структуры БД, если у вас возможно завести 2 одинаковые записи. Для невозможности возникновения подобной ситуации и придуманы уникальные индексы.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 30.11.2010 в 20:12.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter