我有一个要求,我需要获取'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
答案 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