Vous pouvez y parvenir en utilisant la requête suivante :
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)
Je suppose que vous devez supprimer uniquement les enregistrements où il est netamount = 0
, Si ce n'est pas le cas, commentez ci-dessous.
Si vous souhaitez conserver une entrée non nulle et supprimer toutes les autres (en cas de tous les zéros, une entrée avec zéro comme netamount
sera conservé) alors vous pouvez utiliser la requête suivante :
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
);
Bravo !