删除表中除最近N个月记录之外的所有记录(按ID排序)

时间:2015-08-19 12:17:16

标签: sql-server-2008

任何人都可以帮我解决这个问题。我唯一需要的是将最新的3个月记录保存在表格中。

表格结构:

enter image description here

清除后我的表应该是这样的

enter image description here

2 个答案:

答案 0 :(得分:1)

问题不明确,但如果您要删除超过3个月的记录,则应执行以下操作:

DELETE from Tablex 
    WHERE datediff(m,InsertDt , getdate())> 3

答案 1 :(得分:1)

试试这个:

DELETE
    FROM Tablex 
    INNER JOIN (SELECT max(InsertDt ) LastDate, id FROM Tablex  GROUP by id) LastDates ON LastDates.id = Tablex.id
    WHERE InsertDt < dateadd(m,-3,LastDates.LastDate)