Puoi ottenere ciò utilizzando la seguente query:
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)
Presumo che sia necessario eliminare solo i record in cui è netamount = 0
, In caso contrario, commenta di seguito.
Se stai cercando di conservare una voce diversa da zero ed eliminare tutte le altre (in caso di tutti gli zeri, una voce con zero come netamount
verranno mantenuti) quindi è possibile utilizzare la seguente query:
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
);
Ciao!!