У меня есть этот оператор выбора:
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
и я хочу удалить строки, возвращенные из этого заявления, есть идеи?
Команда Delete FROM дает мне ошибку ORA-01732: data manipulation operation not legal on this view
, потому что, как мне кажется, я сравниваю две таблицы, хотя и одну и ту же.
Я также попытался удалить из tablename, где существуют строки, но при этом было удалено гораздо больше строк, чем мне хотелось.
«Дубликаты» основаны на Subcont. Были записи, вставленные в базу данных/приложение с использованием поля subcont, которое должно было быть пустым, поэтому теперь у меня есть записи, которые одинаковы, за исключением одной, например, A в subcont и пустой в другой:
idcprefix, subcont, orgdept and idcseq
1 A ABC 1
1 ABC 1
2 A BCD 1
2 BCD 1
Запрос показывает все записи, которые имеют субконтент, который является дубликатом тех, у которых его нет, и мне нужно удалить записи со значением субконта.
Помощь будет высоко оценена!