我的数据库中有一张大表,我需要在其中跟踪列(序列和日期)中的更改。换句话说,跟踪序列号更改的日期。这是结构:
pvs
-----
- id (int increment)
- serial (varchar)
- pos_id (int)
- fecha (datetime)
Pos_id是位置,因此也很重要。
我想我可以使用PL,但是它已经很慢了,因为它只是查询信息而没有任何过滤。
编辑:
我将与日期相对应的Excel文件上载到数据库,因此“更新时”解决方案对我而言不可行。
当我说一列中的更改时,是指“序列”列中的更改。
编辑2:
如您所见,有四列,“序列”列是重复的。观察结果是,此列针对该pos_id(代表已安装的设备,并且损坏)等超时变化,因此我需要获取发生更改的行。例如,在图片中,我们假设以后在id 2900000中将序列更改为另一个代码,例如312555654。输入为:
id | serial | pos_id | fecha
2900000 | 312555654 | 5 | 2018-04-25 00:00:00
因此,我需要在一个查询中获得所有这些更改,并以这种方式更新其他表。如果可能的话。我可以使用pos_id作为参数。
答案 0 :(得分:0)
稍后我想出了答案:
SELECT min(id), SERIAL, pos_id, MIN(fecha)
FROM pvs
GROUP BY SERIAL, pos_id
ORDER BY MIN(fecha) DESC;
因此,每次更改序列号时,它将向我显示新序列号出现的第一个日期。