powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / В БД DBF показать дублирующиеся строки
11 сообщений из 11, страница 1 из 1
В БД DBF показать дублирующиеся строки
    #34383403
DelphiLexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть DBF файлы с ними я работаю через BDE и использую Sql. Скажите, пожалуйста, как мне с помощью Sql отобразить дублирующиеся записи. Каждая запись состоит из 5 полей:
DOC_D, ID_D, ID_P, F_1, F_2 .
Две записи считаются одинаковыми, если DOC_D, ID_D и ID_P совпадают.
...
Рейтинг: 0 / 0
В БД DBF показать дублирующиеся строки
    #34383455
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что при этом делать с полями F_1, F_2 ?
А вообще, в общем случае, задача решается при помощи GROUP BY + HAVING COUNT(1) > 1
...
Рейтинг: 0 / 0
В БД DBF показать дублирующиеся строки
    #34383704
DelphiLexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бабичев СергейЧто при этом делать с полями F_1, F_2 ?
А вообще, в общем случае, задача решается при помощи GROUP BY + HAVING COUNT(1) > 1
Поля F_1, F_2 хранят нужные данные.
Немогли бы вы полностью написать как должен выглядеть Sql-запрос, а то что-то у меня не получается.
...
Рейтинг: 0 / 0
В БД DBF показать дублирующиеся строки
    #34383908
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select t.*
  from dbf_name t,
       (
         select t0.DOC_D, t0.ID_D, t0.ID_P
           from dbf_name t0
          group by t0.DOC_D, t0.ID_D, t0.ID_P
          having count( 1 ) >  1  
       ) v
 where t.DOC_D = v.DOC_D
   and t.ID_D = v.ID_D
   and t.ID_P = v.ID_P
...
Рейтинг: 0 / 0
В БД DBF показать дублирующиеся строки
    #34384162
DelphiLexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бабичев Сергей
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
         select t0.DOC_D, t0.ID_D, t0.ID_P
           from dbf_name t0
          group by t0.DOC_D, t0.ID_D, t0.ID_P
          having count( 1 ) >  1  
       ) v
...

BDE не воспринимает select после from dbf_name t,
(select t0...
Как с этим быть?
...
Рейтинг: 0 / 0
В БД DBF показать дублирующиеся строки
    #34385814
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DelphiLexxBDE не воспринимает select после from dbf_name t,
(select t0...
Как с этим быть?Покажи полностью текст запроса, который ты пытаешься выполнить.

З.Ы.
Если что, то dbf_name нужно было заменить на название реального набора данных.
...
Рейтинг: 0 / 0
В БД DBF показать дублирующиеся строки
    #34385847
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select t.*
  from dbf_name t
  where exists  (select count(*)
                        from dbf_name t0
                      where t0.DOC_D = t.DOC_D
                         and t0.ID_D = t.ID_D
                         and t.ID_P = v.ID_P
                      having count( 1 ) >  1 )
...
Рейтинг: 0 / 0
В БД DBF показать дублирующиеся строки
    #34385852
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В предыдущем посте в условии была ошибка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select t.*
  from dbf_name t
  where exists  (select count(*)
                        from dbf_name t0
                      where t0.DOC_D = t.DOC_D
                         and t0.ID_D = t.ID_D
                         and t0.ID_P = t.ID_P
                      having count( 1 ) >  1 )

...
Рейтинг: 0 / 0
В БД DBF показать дублирующиеся строки
    #34385966
DelphiLexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
golsaВ предыдущем посте в условии была ошибка

Все равно выдается ошибка
Capability not supported
...
Рейтинг: 0 / 0
В БД DBF показать дублирующиеся строки
    #34386804
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DelphiLexx golsaВ предыдущем посте в условии была ошибка

Все равно выдается ошибка
Capability not supportedВот так попробуй:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select t1.*
  from dbf_name t1
  join dbf_name t2
    on t1.DOC_D = t2.DOC_D
   and t1.ID_D = t2.ID_D
   and t1.ID_P = t2.ID_P
 group by t1.DOC_D, t1.ID_D, t1.ID_P, t1.F_1, t1.F_2
 having count( 1 ) >  1 
...
Рейтинг: 0 / 0
В БД DBF показать дублирующиеся строки
    #35058116
vlad@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на sql я сделал так:
========================
select * into #Employees FROM [Halloween].[dbo].[Sheet1$] order by F1, F2

declare @aa nvarchar(250), @bb nvarchar(250);set @bb =null;

while ( SELECT top 1 id FROM #Employees where processed =0 )is not null

begin

set @aa = (SELECT cast(F1 as char(10))+ cast(F2 as char(10))--, * --[LastName] +' '+[FirstName] +' '+[Title]

FROM #Employees

where processed =0 and id=(select top 1 id from #Employees where processed =0 )) ;

if @bb!=@aa update #Employees set flag=1 where id in

(SELECT top 1 id FROM #Employees where processed =0 ) ;

set @bb=@aa;

update #Employees set processed=1 where id in

(SELECT top 1 id FROM #Employees where processed =0 );

end

------------------

SELECT * FROM #Employees where f1=826 and f2=249--where flag=0

update #Employees set flag=0

update #Employees set processed=0

select lastname FROM #Employees where flag =0

select lastname FROM #Employees where flag =1

--drop table #Employees
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / В БД DBF показать дублирующиеся строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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