获取SYSTEM插入的最新记录

时间:2014-08-07 06:16:32

标签: sql

我有一个要求,我需要获取'SYSTEM'持久保存的最新记录,即使它被多个用户修改过。请求您帮助我构建该查询。

案例1数据:  uniqueId-111 - >系统已将该记录两次插入(记录-1,4),并且多个用户(记录-2,3,5)更新了该记录。现在我需要一个查询,当我通过Id = 111和Type = I我应该得到'SYSTEM'插入的最新记录,即记录-4

案例2数据:  uniqueId-222 - >该记录已由系统插入一次(记录-6),并且已由多个用户更新(记录-7,9)。当我通过Id = 222和Type = II时,应获取由'SYSTEM'插入的最新记录即记录-6

测试数据:

PK  |  ID    |  TYPE   | USER       |    Date     |  OtherInfo
---------------------------------------------------------------
1   |  111   |  I      |   SYSTEM   |   01/Aug    |     A
2   |  111   |  I      |    XYZ     |   02/Aug    |     B
3   |  111   |  I      |    ABC     |   03/Aug    |     C
4   |  111   |  I      |   SYSTEM   |   04/Aug    |     D
5   |  111   |  I      |    ABC     |   05/Aug    |     E
6   |  222   |  I      |   SYSTEM   |   02/Aug    |     F
7   |  222   |  I      |    PQR     |   03/Aug    |     G
8   |  333   |  C      |    XYZ     |   03/Aug    |     H
9   |  222   |  I      |    ABC     |   04/Aug    |     I

提前致谢
RK

1 个答案:

答案 0 :(得分:0)

您需要选择您的类型,用户和ID,然后按日期DESC进行排序。您必须将结果限制为1

SELECT * FROM (
   SELECT * FROM yourTable WHERE id = 111 AND type = 'I' AND user = 'SYSTEM' ORDER BY    date_ DESC
) qry WHERE ROWNUM = 1;

请参阅sqlfiddle:http://sqlfiddle.com/#!4/16b37/2