我有以下 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 为最终状态。
任何人都可以帮忙吗?提前致谢。