日期:2014-05-17  浏览次数:20627 次

SQL查询当前审核人的问题~求赐教
本帖最后由 fanhui1022 于 2012-12-27 15:38:14 编辑
多级审核的问题,task任务表,audit审核表(所有审核记录,不单有任务,还有采购、销售等等表)(还有审核流程配置表,在此忽略),现在要实现的功能是建个VIEW,里面能看出某个任务当前审核人是谁.

task表结构
id    code   name
1     RW1    任务1
2     RW2    任务2

audit审核表(只要有对任务提交就会往这个表里面插入一条数据,
第1个审核人审核通过后也会增加一条增加一条记录,提交至第2个审核人)

     任务id     审核人        审核次数       审核日期(未审核的没有日期)
id   item_id   audit_person   audit_num      audit_date    
1       1        张三              1         2012-12-27
2       1        李四              2
3       2        张三              1


实现后结果

id     code      name       audit_person
1      RW1       任务1      李四
2      RW2       任务2      张三

------解决方案--------------------
select task.*, audit_person from task left join
(select item_id, audit_person,
        row_number() over (partition by item_id order by audit_num desc) rn
        from "audit") adt
on task.id=adt.item_id and rn=1;