次の SQL クエリがあります。
SELECT t.trans_id, t.business_process_id, tsp.status, tsp.timestamp
FROM tran_stat_p tsp, tran t
WHERE t.trans_id = tsp.trans_id
AND tsp.timestamp BETWEEN '1-jan-2008' AND SYSDATE
AND t.business_process_id = 'ABC01'
次のようなデータを出力します。
trans_ID business_process_id status timestamp
14444400 ABC01 F 6/5/2008 12:37:36 PM
14444400 ABC01 W 6/6/2008 1:37:36 PM
14444400 ABC01 S 6/7/2008 2:37:36 PM
14444400 ABC01 P 6/8/2008 3:37:36 PM
14444401 ABC01 F 6/5/2008 12:37:36 PM
14444401 ABC01 W 6/6/2008 1:37:36 PM
14444401 ABC01 S 6/7/2008 2:37:36 PM
14444401 ABC01 P 6/8/2008 3:37:36 PM
上記に加えて、一意のすべてのステータス W&F、S&W、P&S 間の時間差 (日数) を計算する列を追加したいと思いますtrans_id。
アイデアは、トランザクションが最終的にステータス「P」に処理される前に、トランザクションがさまざまなステータスに留まっている時間を把握することです。トランザクションのライフ サイクルは、F -> W -> S -> P の順です。ここで、F は最初のステータス、P は最終ステータスです。
誰でも助けることができますか?前もって感謝します。