私はこの選択ステートメントを持っています:
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
このステートメントから戻された行を削除したいのですが、アイデアはありますか?
ORA-01732: data manipulation operation not legal on this view
同じテーブルであるにもかかわらず、2 つのテーブルを比較していると思われるため、Delete FROM でエラーが発生します。
行が存在するテーブル名からの削除も試みましたが、必要以上の行が削除されました。
「重複」は Subcont に基づいています。subcont フィールドを使用してデータベース/アプリケーションに挿入されたレコードがありましたが、これは空白であることが意図されていました。たとえば、サブコンに A があり、もう一方は空白であることを除いて同じレコードがあります。
idcprefix, subcont, orgdept and idcseq
1 A ABC 1
1 ABC 1
2 A BCD 1
2 BCD 1
クエリは、そうでないものの重複であるサブコンを持つすべてのレコードを表示し、サブコン値を持つレコードを削除する必要があります。
助けていただければ幸いです。