0

たとえば、USERとAUDITの2つのテーブルがあり、結合は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

多分これはそれをするでしょう:

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 に答える
0

これが私の解決策です...MAX (FIELD_NAME) KEEP (DENSE_RANK FIRST ORDER BY OPERATION_DT)

于 2012-11-09T21:19:00.013 に答える