是否可以创建一个sql查询来比较单个表中的一个字段,以查看是否进行了更改,如果可能的话,还可以列出之前和之后的列表?
我用excel2010vba编写了以下sql查询,它连接到oraclepostgresql数据库
Dim au As String
au = "SELECT id, priority, flag, code " _
& "FROM hist WHERE ( aud_dt >= '18/05/2020' AND aud_dt <='18/05/2020' ) " _
Set rs = conn.Execute(au)
With ActiveSheet.QueryTables.Add(Connection:=rs, Destination:=Range("A1"))
.Refresh
End With
其中字段包括:
“priority”是我想检查的字段,它是一个0-9之间的数字
“代码”是被赋予优先权的记录,由数字和字母组成,最多7个字符
“flag”显示1为活动记录,2为已编辑记录
“id”是指用户帐户
我最理想的结局是: id | priority | flag | priority_old | flag_old | code
它应该显示优先级更改前后的变化。如果记录显示 priority=3 and flag=2 and code=Ab12
,也必须有带1标志的记录,因为现在是活动记录。如果它对代码有相同的优先级,我对它不感兴趣,因为这只是意味着其他内容被更改了,因为我没有列出所有的列字段。
如果活动记录现在显示 priority=4, flag=1 and code=Ab12
,那正是我要看的唱片。
1条答案
按热度按时间xoefb8l81#
考虑一个自连接查询(可能需要在
WHERE
取决于项目更改的时间):