powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Delete с помощью запроса
6 сообщений из 6, страница 1 из 1
Delete с помощью запроса
    #35770205
С помощью мастера создал запрос на выборку
Повторяющиеся записи.Не мог создать индекс.

Индекс должен состоять из 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
Delete с помощью запроса
    #35771141
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хоть что-то у этих записей отличается то можно удалить запросом
если все три абсолютно одинаковы, то загнать результат в другую таблицу, удалить дубликаты, добавить строки из таблицы
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Delete с помощью запроса
    #35771301
edmikeca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eсли все три абсолютно одинаковы, то можно сделать SELECT DISTINCT....
...
Рейтинг: 0 / 0
Delete с помощью запроса
    #35771319
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Delete с помощью запроса
    #35771343
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по всему, строки чем-то отличаются. Причем не особо важно чем. Главное, чтобы осталась только одна строка TABNUMBER + DATE_1 (остальные поля в этой строке значения не имеют).
Через запрос это можно сделать, играясь с min/max и top.
В РВ можно сделать DW с группой TABNUMBER + DATE_1 и взять из каждой группы первую строку.
...
Рейтинг: 0 / 0
Delete с помощью запроса
    #35771366
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
6 сообщений из 6, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Delete с помощью запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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