これは、次のクエリを使用して実現できます。
delete from tabela.lorik O
where O.netamt = 0
AND EXISTS (SELECT 1 FROM tabela.lorik I
WHERE I.ID = O.ID AND I.netamt <> 0)
netamount = 0
のレコードのみを削除する必要があると想定しています。 、そうでない場合は、以下にコメントしてください。
ゼロ以外のエントリを1つ保持し、他のすべてのエントリを削除する場合(すべてゼロの場合、netamount
としてゼロを含む1つのエントリ 保持されます)次に、次のクエリを使用できます:
DELETE FROM TABELA.LORIK O
WHERE
ROWID IN (
SELECT
RWID
FROM
(
SELECT
ROWID AS RWID,
ROW_NUMBER() OVER(
PARTITION BY ID
ORDER BY
CASE
WHEN NETAMT = 0 THEN 2
ELSE 1
END
) AS RN
FROM
TABELA.LORIK
)
WHERE
RN > 1
);
乾杯!!