保留今天日期的最新记录 Table
Keeping Most Recent Record from Today's Date in Table
我需要有关我计划在 SSIS 中使用的 update/delete 语句的帮助。我有以下 table 条记录:
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
我想更新 table 以便保留今天日期 (3/7/19) 的最新记录,但删除今天日期的旧记录。
table 更新后应该是这样的:
Record DateCreated TimeCreated
1 3/7/19 11:00AM
3 2/5/19 9:00AM
4 2/6/19 10:00AM
如果今天的日期有超过 2 条记录(例如 3、4 等),我希望它只保留最近的一条。
任何人都可以帮我解决这个问题所需的 update/delete 声明吗?
您可以使用可更新的 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());
我需要有关我计划在 SSIS 中使用的 update/delete 语句的帮助。我有以下 table 条记录:
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
我想更新 table 以便保留今天日期 (3/7/19) 的最新记录,但删除今天日期的旧记录。
table 更新后应该是这样的:
Record DateCreated TimeCreated
1 3/7/19 11:00AM
3 2/5/19 9:00AM
4 2/6/19 10:00AM
如果今天的日期有超过 2 条记录(例如 3、4 等),我希望它只保留最近的一条。
任何人都可以帮我解决这个问题所需的 update/delete 声明吗?
您可以使用可更新的 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());