0
select * from
(
  Select DISTINCT 
    DocManREPORT_View.DOCINPUTDATE,
    DocManREPORT_View.REACTIVATEDATE,
    DocManREPORT_View.TRACENO,
    DocManREPORT_View.CLIENTNAME,
    DocManREPORT_View.DOCUMENTID,DocManREPORT_View.BARCODEID,
    DocManREPORT_View.INPUTMODE,
    DocManREPORT_View.INPUTSOURCE,PI.start_time,
    RANK() OVER (PARTITION BY process_instance_id 
       ORDER BY last_modified_date desc) rank,
    PI.STATUS AS PROCESSSTATUS 
  FROM DocManREPORT_View 
  INNER JOIN PROCESS_INSTANCE PI ON 
    (pi.instance_id = DocManREPORT_View.process_instance_id)
) 
where rank = 1;
4

2 に答える 2

0

DISTINCT句はパフォーマンスを台無しにする可能性があると思います。句ごとのパーティションに含めることでそれを取り除き、何が得られたかを確認することをお勧めします。

于 2012-09-10T06:21:13.097 に答える
0

可能であれば、使用してみてください

 RANK() OVER (PARTITION BY process_instance_id 
       ORDER BY last_modified_date desc) rank,

ビューの内部では、ビューにはこのステップを実行するためのすべてのデータが既に含まれていると思います。

于 2012-09-10T06:42:33.260 に答える