Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 保存从今天开始的最新记录';表中的日期_Sql_Sql Update_Sql Server 2016_Sql Delete_Getdate - Fatal编程技术网

Sql 保存从今天开始的最新记录';表中的日期

Sql 保存从今天开始的最新记录';表中的日期,sql,sql-update,sql-server-2016,sql-delete,getdate,Sql,Sql Update,Sql Server 2016,Sql Delete,Getdate,我需要有关计划在SSIS中使用的update/delete语句的帮助。我有以下记录表: 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 我想更新该表,以便保留今天(3/7/19)的最新记录,但删除今天日期的旧记录 更新后的表

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

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
我想更新该表,以便保留今天(3/7/19)的最新记录,但删除今天日期的旧记录

更新后的表应如下所示:

Record   DateCreated   TimeCreated
1          3/7/19       11:00AM
3          2/5/19       9:00AM
4          2/6/19       10:00AM
如果今天的日期有2条以上的记录(例如3条、4条等),我希望它只保留最近的一条


有谁能帮我完成这项工作所需的更新/删除语句吗?

您可以使用可更新的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());

太快了+谢谢你在我脑子里看到整个声明之前把它打印出来。非常感谢戈登!