列出历史数据库中记录的更改

时间:2019-02-18 12:09:02

标签: sql

我们有一个家庭自制的硬件数据库(某种CMDB),其中安排了许多内部管理任务,以整理工作。每个硬件项目都有一个状态-为简单起见,可以说:活动;无效;仓库。

每时每刻,“活动”机器的数量都有所增加,我们无法跟踪导致此问题的内务处理任务。

我编写了一个小脚本,每天晚上运行,以获取我们感兴趣的特定字段的快照(硬件的标准名称和状态),并将它们附加到每个带有日期的每晚“趋势”数据库中戳,但我不知道如何查询第二个数据库以生成记录列表,其中状态已从状态更改为“活动”或更改为状态,并带有日期指示。

(一旦有了此列表,当我们有了很大的跳跃时,我们就可以去查看各个记录,以查看是什么家政任务导致了更改。)

请问有人对我可能会尝试检查的SQL查询有什么想法吗?

非常感谢您的评论!

(目前,我正在使用sqlite3,但从长远来看,它计划迁移到Oracle。我正在使用Python 3.7脚本进行夜间转储)

1 个答案:

答案 0 :(得分:0)

我已经做到了。为了记录下来,以防万一有人感兴趣,我创建了两个sql查询:

select * from Trends_Database where (
Machine_Name in (select Max(Machine_Name) from Trends_Database group by Machine_Name) AND
(Status LIKE 'Deployed') AND
(date(`Date of Snapshot`) == date('now')))

select * from Trends_Database where (
Machine_Name in (select Max(Machine_Name) from Trends_Database group by Machine_Name) AND
(Status NOT LIKE 'Deployed') AND
(date(`Date of Snapshot`) == date('now','-1 day'))

我将它们读入了两个Pandas数据框,并采用了两者的交集。

我从here那里得到了骨头