2017-02-06 8 views
0

チケットが各ステータスで費やされた時間を計算したいのですが、チケットが最初にステータスになった日時のタイムスタンプのみがあります。チケットの次のレコードは、最初のrowstampとdatetimeと同じチケット番号よりも、rowstampとdatetime>と異なるステータスになります。チケット2枚のサンプルは以下の通りです:Oracle 11g SQLチケットの有効期限

Ticket STATUS CHANGEDATE  CHANGEBY STATUSID PARENT ROWSTAMP 
1256 PENDING 27-JAN-17 10.29.05 Steve 20265288 1256 15261227238 
1256 QUEUED 27-JAN-17 07.33.37 Steve 20263810 1256 15259925905 
1256 REWORK 26-JAN-17 08.46.27 Steve 20261523 1256 15255531117 
1256 SUBMITTED 26-JAN-17 03.02.57 Steve 20259551 1256 15253362461 
1256 QUEUED 24-JAN-17 08.35.22 Steve 20241287 1256 15228220003 
1256 REWORK 22-JAN-17 07.07.08 Steve 20229359 1256 15211303360 
1256 SUBMITTED 20-JAN-17 03.29.48 Steve 20226100 1256 15190853552 
1256 PENDING 12-JAN-17 11.16.31 Steve 20179545 1256 15105790542 
1256 QUEUED 10-JAN-17 08.09.25 Steve 20161878 1256 15082495955 
1256 REWORK 09-JAN-17 06.59.37 Steve 20159040 1256 15076785748 
1256 SUBMITTED 09-JAN-17 01.58.22 Steve 20157016 1256 15074491733 
1256 QUEUED 09-JAN-17 01.19.58 Steve 20152389 1256 15069093940 
1256 WAPPR 09-JAN-17 01.14.29 Steve 20152381 1256 15068979212 
1875 PENDING 16-JAN-17 10.55.36 Mike 20193876 1875 15143974636 
1875 INPRG 09-JAN-17 12.18.47 Mike 20156411 1875 15073870918 
1875 QUEUED 09-JAN-17 05.54.15 Mike 20153527 1875 15070925155 
1875 WAPPR 06-JAN-17 06.19.27 Mike 20145566 1875 15050402194 

私は同じレコード内の各ステータスの開始時刻と終了時刻を持っていた以前のデータセットで働いていたとは考えています。しかし、開始時間だけではありません。任意のヘルプ

答えて

1

ため おかげでジャストlead()を使用します。

select t.*, 
     lead(changedate) over (partition by ticket order by changedate) as next_changedate 
from tickets t; 

私はあなたが違いを計算したいかどうかはわかりません。あなたはちょうど2つの値を減算し、日数の違いを得ることができます。

+0

早急に返信いただきありがとうございました。 – atb4y8