关于中间表多次修改数据取修改时间最大值的有关问题

关于中间表多次修改数据取修改时间最大值的问题。

--drop table A1
create table A1
(
  id NUMBER(11),
  code varchar2(200),
  time char(19),
  type NUMBER(11)
);
insert into A1 (ID, CODE, TIME, TYPE)
values (1, 'A', '2014-08-06 10:22:00', 0);

insert into A1 (ID, CODE, TIME, TYPE)
values (2, 'B', '2014-08-07 10:22:00', 0);

insert into A1 (ID, CODE, TIME, TYPE)
values (3, 'C', '2014-08-08 10:21:00', 0);

insert into A1 (ID, CODE, TIME, TYPE)
values (4, 'C', '2014-08-09 10:21:00', 0);

insert into A1 (ID, CODE, TIME, TYPE)
values (5, 'C', '2014-08-10 10:21:00', 0);

insert into A1 (ID, CODE, TIME, TYPE)
values (6, 'C', '2014-08-11 10:21:00', 0);

insert into A1 (ID, CODE, TIME, TYPE)
values (7, 'C', '2014-08-12 10:21:00', 0);

insert into A1 (ID, CODE, TIME, TYPE)
values (8, 'D', '2014-08-12 10:21:00', 0);

insert into A1 (ID, CODE, TIME, TYPE)
values (9, 'D', '2014-08-12 10:21:00', 0);

insert into A1 (ID, CODE, TIME, TYPE)
values (10, 'D', '2014-08-12 10:21:00', 1);

表格应该是这样的
关于中间表多次修改数据取修改时间最大值的有关问题
这个是修改多次反写 多次 到中间表中的数据。
其中C修改了5次 ,有5条历史记录,但是我只需要ID 7 也就是日期2014-08-12 10:21:00 这条最新的修改数据。
然后D虽然修改3次,但是type已经置为1了。 所以不需要 再次查询出来了。

然后我找了一个 SQL语句

SELECT *
  FROM (SELECT ROW_NUMBER() OVER(PARTITION BY z.code ORDER BY z.time DESC) AS rnxx,
               z.*
          FROM A1 z
         WHERE  type = 0)
 WHERE rnxx = 1

先 得到这个表所有的 未处理的 日期最新的数据。但是 其中D却还存在着
关于中间表多次修改数据取修改时间最大值的有关问题

然后 我想  后面加一个 not exists 只要 用编码查询本表的有 已处理 的数据 不就可以了吗
然后 我试了

SELECT *
  FROM (SELECT ROW_NUMBER() OVER(PARTITION BY z.code ORDER BY z.time DESC) AS rnxx,
               z.*
          FROM A1 z
         WHERE  type = 0)
 WHERE rnxx = 1
   AND not exists (SELECT 1
          FROM a1 a
         WHERE a.code = code
           AND a.type = 1);

关于中间表多次修改数据取修改时间最大值的有关问题
发现一条数据 都查不到。。

我最终需要的查询效果 应该是这样的。谁能告诉我下 这个怎么写?
关于中间表多次修改数据取修改时间最大值的有关问题
------解决方案--------------------
type = 0条件放到外层,另外看你存在时间相同的记录 order里最好增加 id desc 排序
SELECT *
  FROM (SELECT ROW_NUMBER() OVER(PARTITION BY z.code ORDER BY z.time DESC,ID DESC) AS rnxx,
               z.*
          FROM A1 z)
 WHERE rnxx = 1 and  type = 0