0

我有两个表,例如 USER 和 AUDIT,其中连接是user.id = audit.record

用户:

 ID,  USER,  NAME,  LAST_NAME

 205, USER1, PEDRO, PEREZ

 206, USER2, JUAN,  PEREZ

审计:

 ID, ACTION, RECORD, FIELD,     DATE

 1, MODIFY,  205,    LAST_NAME, 08/11/12

 2, MODIFY,  205,    NAME,      25/09/12

 3, MODIFY,  206,    NAME,      08/11/12

我需要一个查询,结果显示所有用户他的最后一个注册表项的名称有修改。在示例中,结果将是USER2

我正在使用 Oracle 8,我可以使用简单的查询还是需要创建一个函数?

提前致谢。

4

2 回答 2

0

这是我的解决方案...MAX (FIELD_NAME) KEEP (DENSE_RANK FIRST ORDER BY OPERATION_DT)

于 2012-11-09T21:19:00.013 回答
0

也许这会做到:

select id from user u,
               audit a
 where  u.id=a.record
 and a.action='MODIFY'
 and a.field='NAME'
 and a.id = (select max(id) 
             from audit a2
             where a2.record=u.id)
于 2012-11-09T07:11:08.913 回答