我们有一个家庭自制的硬件数据库(某种CMDB),其中安排了许多内部管理任务,以整理工作。每个硬件项目都有一个状态-为简单起见,可以说:活动;无效;仓库。
每时每刻,“活动”机器的数量都有所增加,我们无法跟踪导致此问题的内务处理任务。
我编写了一个小脚本,每天晚上运行,以获取我们感兴趣的特定字段的快照(硬件的标准名称和状态),并将它们附加到每个带有日期的每晚“趋势”数据库中戳,但我不知道如何查询第二个数据库以生成记录列表,其中状态已从状态更改为“活动”或更改为状态,并带有日期指示。
(一旦有了此列表,当我们有了很大的跳跃时,我们就可以去查看各个记录,以查看是什么家政任务导致了更改。)
请问有人对我可能会尝试检查的SQL查询有什么想法吗?
非常感谢您的评论!
(目前,我正在使用sqlite3,但从长远来看,它计划迁移到Oracle。我正在使用Python 3.7脚本进行夜间转储)
答案 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那里得到了骨头