У меня есть этот оператор выбора:Удалять Ряды привезли из Выбери заявление, которое содержит имеющую и группу по статье в Oracle
SELECT d.idcprefix,
d.orgdept,
d.idcseq,
d.subcont,
d.actualcomp,
COUNT (*) AS "No Duplicates"
FROM DCS_IDC, DCS_IDC z
WHERE D.IDCPREFIX = z.idcprefix
AND z.orgdept = d.orgdept
AND z.idcseq = d.idcseq
and D.SUBCONT is not null
HAVING COUNT (*) > 1
GROUP BY d.idcprefix,
d.orgdept,
d.idcseq,
d.subcont,
d.actualcomp
ORDER BY d.idcprefix,
d.orgdept,
d.idcseq,
d.subcont,
d.actualcomp
, и я хочу, чтобы удалить строки, привезенные из этого утверждения, любой идеи?
A Удалить FROM дает мне ошибку ORA-01732: data manipulation operation not legal on this view
, потому что, я считаю, я сравниваю две таблицы, хотя и та же таблица.
Я также попробовал удаление из имя_таблицы где строки существует, но которые удалены гораздо больше строк, чем я хотел.
«Дубликаты» основаны на Subcont. В базу данных/приложение были включены записи, в которых используется поле subcont, которое должно быть пустым, поэтому теперь у меня есть записи, которые одинаковы, за исключением одного, например, A в субконце, а в другом - пустого:
idcprefix, subcont, orgdept and idcseq
1 A ABC 1
1 ABC 1
2 A BCD 1
2 BCD 1
В запросе отображаются все записи, которые имеют субконтракт, которые являются дубликатами тех, которые этого не делают, и мне нужно удалить те, которые имеют значение subcont.
Помощь была бы очень признательна!
Я правильно понимаю, что этот запрос находит дубликаты в DCS_IDC, и вы хотите удалить все, кроме одного из дубликатов? Есть ли первичный ключ в этой таблице? Вам не нравится, какой из дубликатов сохраняется? –
Привет, в этой таблице нет первичного ключа. В таблице используется уникальное ограничение типа ключа на idcprefix, subcont, orgdept и idcseq. Я добавил немного выше для контекста – iandavidson1982