Bạn có thể đạt được điều này bằng cách sử dụng truy vấn sau:
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)
Tôi giả định rằng bạn chỉ cần xóa các bản ghi có netamount = 0
, Nếu không thì hãy bình luận bên dưới.
Nếu bạn đang muốn giữ lại một mục nhập khác 0 và xóa tất cả các mục nhập khác (Trong trường hợp tất cả các số không, một mục nhập có số 0 là netamount
sẽ được giữ lại) thì bạn có thể sử dụng truy vấn sau:
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
);
Chúc mừng !!