需要一些关于DB2 sql查询的帮助来获取历史数据

时间:2016-07-25 10:42:38

标签: sql db2

我在数据库中有一个表来维护历史记录/更改。我需要表中的数据,只对一个特定属性进行更改。

例如,让我们说一个特定的服务器记录状态是"开启"在第1天并在第2天和第3天关闭,更改了不同的属性,并在第4天再次恢复服务器状态。现在我只需要对服务器状态进行更改,我对服务器记录的任何其他更改都不感兴趣 有些人可以告诉我,如果递归SQL或自联接可以帮助我获得相关结果......

任何建议都会更受赞赏

1 个答案:

答案 0 :(得分:0)

自我加入似乎是合适的。

关注点:

仅加入属于同一主题(duh)的行,保留state_1 / date_1和state_2 / date_2,仅保留两个状态不同的行,仅保留date_2> date_1,最后添加过滤条件使用WHERE NOT EXISTS(...),对于同一主题,date_1和date_2之间不能有任何介入日期_3。