Anda dapat mencapai ini menggunakan kueri berikut:
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)
Saya berasumsi bahwa Anda hanya perlu menghapus catatan yang netamount = 0
, Jika belum maka berikan komentar di bawah.
Jika Anda ingin mempertahankan satu entri bukan nol dan menghapus semua entri lainnya (Jika semua nol, satu entri dengan nol sebagai netamount
akan dipertahankan) maka Anda dapat menggunakan kueri berikut:
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
);
Semangat!!