Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Delete с помощью запроса / 6 сообщений из 6, страница 1 из 1
21.01.2009, 17:52
    #35770205
Delete с помощью запроса
С помощью мастера создал запрос на выборку
Повторяющиеся записи.Не мог создать индекс.

Индекс должен состоять из 2-х столбцов: TABNUMBER + DATE_1

Код: plaintext
1.
2.
3.
SELECT ASSIGN.TABNUMBER, ASSIGN.DATE_1, ASSIGN.POSITION
FROM ASSIGN
WHERE (((ASSIGN.TABNUMBER) In (SELECT [TABNUMBER] FROM [ASSIGN] As Tmp GROUP BY [TABNUMBER],[DATE_1] HAVING Count(*)> 1   And [DATE_1] = [ASSIGN].[DATE_1])))
ORDER BY ASSIGN.TABNUMBER, ASSIGN.DATE_1;
В результате выполнения запроса найдены
29 записей, в которых дублируются или 3 одинаковых
Как с помощью запроса удалить ненужные,
оставив только одну?
...
Рейтинг: 0 / 0
22.01.2009, 10:18
    #35771141
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete с помощью запроса
Если хоть что-то у этих записей отличается то можно удалить запросом
если все три абсолютно одинаковы, то загнать результат в другую таблицу, удалить дубликаты, добавить строки из таблицы
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
22.01.2009, 11:13
    #35771301
edmikeca
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete с помощью запроса
Eсли все три абсолютно одинаковы, то можно сделать SELECT DISTINCT....
...
Рейтинг: 0 / 0
22.01.2009, 11:17
    #35771319
VanoR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete с помощью запроса
MSSQL2005
Код: plaintext
1.
with del(N) as (select row_number() over(partition by TABNUMBER, DATE_1 order by TABNUMBER, DATE_1) from ASSIGN)
delete del where N> 1 
...
Рейтинг: 0 / 0
22.01.2009, 11:24
    #35771343
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete с помощью запроса
Судя по всему, строки чем-то отличаются. Причем не особо важно чем. Главное, чтобы осталась только одна строка TABNUMBER + DATE_1 (остальные поля в этой строке значения не имеют).
Через запрос это можно сделать, играясь с min/max и top.
В РВ можно сделать DW с группой TABNUMBER + DATE_1 и взять из каждой группы первую строку.
...
Рейтинг: 0 / 0
22.01.2009, 11:32
    #35771366
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delete с помощью запроса
VanoRMSSQL2005
Код: plaintext
1.
with del(N) as (select row_number() over(partition by TABNUMBER, DATE_1 order by TABNUMBER, DATE_1) from ASSIGN)
delete del where N> 1 

Красиво! :)
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Delete с помощью запроса / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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