保持表中今日记录的最新记录

问题描述 投票:1回答:1

我需要有关我计划在SSIS中使用的更新/删除语句的帮助。我有以下记录表:

Record   DateCreated   TimeCreated
1          3/7/19       11:00AM
2          3/7/19       8:00AM
3          2/5/19       9:00AM
4          2/6/19       10:00AM

我想更新表格,以便保留今天日期(2009年3月7日)的最新记录,但从今天的日期中删除旧记录。

更新后,表格应如下所示:

Record   DateCreated   TimeCreated
1          3/7/19       11:00AM
3          2/5/19       9:00AM
4          2/6/19       10:00AM

如果今天的日期有超过2条记录(例如3,4等),我希望它保留唯一最新的记录。

有人可以帮我解决这个需要的更新/删除声明吗?

sql sql-update sql-server-2016 sql-delete getdate
1个回答
2
投票

您可以使用可更新的CTE:

with todelete as (
      select t.*,
             row_number() over (partition by datecreated order by timecreated desc) as seqnum
      from t
     )
delete from todelete
    where seqnum > 1 and
          datecreated = convert(date, getdate());
© www.soinside.com 2019 - 2024. All rights reserved.