为何不写一条稍复杂点的
DELETE FROM DALDGP
WHERE REPDATE != DZDATE
AND ( CUSBRH,LCSDPT,TRXCUR,ACNACC,ACNACS) IN ( SELECT CUSBRH,LCSDPT,TRXCUR,ACNACC,ACNACS
FROM DALDGP
GROUP BY CUSBRH,LCSDPT,TRXCUR,ACNACC,ACNACS
HAVING COUNT(1)>1) 这个就是删除多余的数据。
delete from
(
select * from
(select d.*, count(*) OVER(PARTITION BY CUSBRH,LCSDPT,TRXCUR,ACNACC,ACNACS) as cnt
from DALDGP d whereREPDATE != ?) T
where cnt > 1
)
页:
[1]