我有以下大致结构:
Object -> Object Revisions -> Data
数据可以在多个对象之间共享。
我想做的是清除旧的对象修订版。我想保留第一个,活跃的修订版本,以便保留一段时间的最后一个更改。数据可能会在2天的过程中发生很大变化,然后搁置几个月,所以我想在更改开始和新设置的结束更改之前保留最新版本。
我当前正在使用游标和临时表来保存更改之间的ID和日期,因此我可以选择要摆脱的低挂水果。这意味着使用@ LastID,@ LastDate,更新并插入到临时表等。
在不使用游标和临时表的情况下,是否存在一种更简便/更好的方法来计算初始结果集中当前行和下一行之间的日期差?
我使用的是sql server 2000,但对2005、2008的任何新功能也可能会有所帮助。
如果标识列是连续的,则可以使用以下方法:
SELECT curr.*, DATEDIFF(MINUTE, prev.EventDateTime,curr.EventDateTime) Duration FROM DWLog curr join DWLog prev on prev.EventID = curr.EventID - 1
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。