创建一个审计表来记录单据的修改记录。主要的字段修改日期,用户名,单据号码,单据类型,修改类型,客户端名称或者IP等等
然后在单据表上创建触发器,将修改记录到审计表中。
有了审计表,就可以方便地查询到历史 *** 作记录了。
方法一:
查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
1
select from table_a where id = (select id from table_a where id < {$id} [and other_conditions] order by id desc limit 1) [and other_conditions];
查询下一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
1
select from table_a where id = (select id from table_a where id > {$id} [and other_conditions] order by id asc limit 1) [and other_conditions];
假如你的表,
accno
只有一个
12的。
没有其他的
accno。
或者你无视
accno,
只找时间最早的那条。
那么:
SELECT
TOP
1
FROM
表名
ORDER
BY
opdate,
optime;
假如你的表,有很多个
accno,
比如有
12,
13,
你要
分别把
12
与
13
的时间最早对应的记录查出来。
SELECT
FROM
表名
WHERE
NOT
EXISTS
(
SELECT
1
FROM
表名
AS
tmp
WHERE
表名accno
=
tmpaccno
AND
表名opdate
>
tmpopdate
AND
表名optime
>
tmpoptime
);
理解起来,就是查询
表
对于每一个
accno,
不存在有其他的行,比当前行的
opdate
与
optime
更加小的。
从而取得
每一个
accno
的,日期时间最早的记录。
历年来所有日期相同的记录
就是说每年的同一个月同一天就是相同的记录吧?
思路是在日期中截取月份,天数。对这两项进行比较。
1 怎样截取:DATE类型或VARCHAR类型的截取方式不同,具体你可以查;
2 查询天数和月份都相同的ID,再根据ID查询完整的记录
以上只是思路
以上就是关于用SQL 语句,或者什么方式 能查到之前的历史 *** 作记录,查某个单据是如何生成的(何时保存、何时审核的)全部的内容,包括:用SQL 语句,或者什么方式 能查到之前的历史 *** 作记录,查某个单据是如何生成的(何时保存、何时审核的)、如何获取SQL查询当前数据上一条和下一条的记录、sql中取时间最早对应的记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)