Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как БД состоящая из DBF файлов показать дублирующиеся строки [D7, dBase, FoxPro]


DelphiLexx ©   (2007-03-12 11:46:00) 

У меня есть DBF файлы с ними я работаю через BDE и использую Sql. Скажите, пожалуйста, как мне с помощью Sql отобразить дублирующиеся записи. Каждая запись состоит из 5 полей: DOC_D, ID_D, ID_P, F_1, F_2 .
Две записи считаются одинаковыми, если DOC_D, ID_D и ID_P совпадают. F_1 и F_2 хранит нужные мне данные.


ЮЮ   (2007-03-12 12:31:00) [1]

Если же клюевым полем намерен пренебречь, то
 SELECT  DOC_D, ID_D, ID_P
 FROM Table1
 GROUP BY  DOC_D, ID_D, ID_P
 HAVING  COUNT(ID_P) > 1
вернет те  DOC_D, ID_D и ID_P, для котрых имеется несколько строк


ЮЮ   (2007-03-12 12:22:00) [2]

>Нет!
Тогда точно запрос неправмльно переписал :)


ЮЮ   (2007-03-12 12:21:00) [3]

Блин, точно :)
Потому как нехватает
 AND t1.Id < t2.Id, где Id - ключеаое поле, которого у тебя в таблице и не хватает


DelphiLexx   (2007-03-12 12:20:00) [4]


> >Вместо этого он выдает все записи
> и у этих записей поля   DOC_D, ID_D, ID_P попарно равны?
>

Нет!


ЮЮ   (2007-03-12 12:19:00) [5]

>Твой запрос не находит дублирующиеся записи.

Мой у тебя не заработает (у тебя нет такой таблицы :), поэтому не работает TBOЙ запрос

>Вместо этого он выдает все записи
и у этих записей поля   DOC_D, ID_D, ID_P попарно равны?


DelphiLexx   (2007-03-12 12:12:00) [6]


> SELECT *
> FROM
>  ЧтобТебеВсюЖизньСТакимиТаблмцамиРаботать t1
>  JOIN ЧтобТебеВсюЖизньСТакимиТаблмцамиРаботать t2 ON
>    (t1.DOC_D = t2.DOC_D) AND (t1.ID_D = t2.ID_D)  AND (t1.
> ID_P = t2.ID_P)

Твой запрос не находит дублирующиеся записи. Вместо этого он выдает все записи


ЮЮ   (2007-03-12 11:53:00) [7]

SELECT *
FROM
 ЧтобТебеВсюЖизньСТакимиТаблмцамиРаботать t1
 JOIN ЧтобТебеВсюЖизньСТакимиТаблмцамиРаботать t2 ON
   (t1.DOC_D = t2.DOC_D) AND (t1.ID_D = t2.ID_D)  AND (t1.ID_P = t2.ID_P)


Наверх

Титульная страница Поиск, карта сайта Написать письмо