Hi All:
with below sample data
============================
GKEY EQ_NBR PERFORMED TSERV_ID
=================================================================
43593981 ECMU1715182 23-Jun-2008 2:04:56 PM EXM
43593983 ECMU1715182 23-Jun-2008 2:13:53 PM YARD SHIFT
43593984 ECMU1715182 23-Jun-2008 3:26:33 PM YARD SHIFT
43593985 FCIU8043523 23-Jun-2008 3:47:15 PM YARD SHIFT
43593987 FCIU8043523 23-Jun-2008 3:50:15 PM EXM
43593989 FCIU8043523 23-Jun-2008 3:52:26 PM YARD SHIFT
I want to display those records having YARD SHIFT after EXM
If there are more than one YARD SHIFT records THEN the very first YARD SHIFT after EXM
should be display where se.performed BETWEEN trunc(sysdate-120/1440,'mi')
AND trunc(sysdate,'mi')
I wrote following query:
select
gkey, se.eq_nbr, se.performed, se.tserv_id
from service_events se
where se.performed BETWEEN trunc(sysdate-120/1440,'mi')
AND trunc(sysdate,'mi')
and se.tserv_id in ('YARD SHIFT')
and exists (select 1 from service_events se1
where se1.tserv_id in ('EXM')
and se1.equse_gkey = se.equse_gkey
and se.performed > se1.performed
)
and se.eq_nbr = 'ECMU1715182'
which display following result
GKEY EQ_NBR PERFORMED TSERV_ID
=================================================================
43593983 ECMU1715182 23-Jun-2008 2:13:53 PM YARD SHIFT
43593984 ECMU1715182 23-Jun-2008 3:26:33 PM YARD SHIFT
This is wrong, I need following record to be display
43593983 ECMU1715182 23-Jun-2008 2:13:53 PM YARD SHIFT
No record should be display if performed does not exist between trunc(sysdate-120/1440,'mi')
AND trunc(sysdate,'mi')
Thanks
Hassan