22,209
社区成员
发帖
与我相关
我的任务
分享
DELETE a FROM (SELECT *,ROW_NUMBER()OVER(PARTITION BY Person_ID,Repast_No,CONVERT(varchar(100), Consume_Time, 23),System_No ORDER BY ID_KEY) AS RN FROM XF_Consume) AS a WHERE RN>1
-- 留下最早的一条
delete XF_Consume
where exists(select 1 from XF_Consume r
where XF_Consume.person_ID= r.person_ID
-- and -- 这里加其他的条件
and XF_Consume.Consume_Time > r.Consume_Time
)
go
delete from XF_Consume a
INNER JOIN (
SELECT *,ROW_NUMBER()OVER(PARTITION BY Person_ID,System_No,CONVERT(varchar(100), Consume_Time, 23),Repast_No ORDER BY ID_KEY) AS seq FROM XF_Consume b
) t ON t.ID_KEY=a.ID_KEY AND t.seq>1