Somthing like this Declare @tbl_master Table ( master_number int, ref_id int )Insert @tbl_master Select 000465787,397 Declare @tbl_rej_info Table( ref_id int, rej_start_date Smalldatetime)Insert @tbl_rej_info Select 397,'11/04/2004' Union All Select 397,'05/05/2004' Union All Select 397,'05/03/2004' Union All Select 397,'02/05/2004'Declare @tbl_ref_status Table ( ref_id int, status varchar(10), rej_flc_date smalldatetime, date_compeleted smalldatetime, masterservice_id int, spkid int )Insert @tbl_ref_statusSelect 397,'NEW','11/05/2004',NULL,127,900 Union AllSelect 397,'NEW','12/05/2005',NULL,220,400 Union AllSelect 397,'NEW','06/05/2005',NULL,403,300 Union AllSelect 397,'NEW','12/12/2005',NULL,187,300 Union AllSelect 397,'NEW','11/05/2004',NULL,127,900 Union AllSelect 397,'NEW','01/05/2004',NULL,127,900 Union AllSelect 397,'NEW','07/05/2004',NULL,127,400 Union AllSelect 397,'NEW','07/05/2004',NULL,127,1800Select * From ( Select Max(rej_start_date) As latest_rej_start_date,tbl1.ref_id From @tbl_ref_status tbl1 Inner Join @tbl_rej_info tbl2 on tbl1.ref_id = tbl2.ref_id and tbl1.spkid = 900 Group by tbl1.ref_id) as A Inner Join ( Select Max(IsNull(date_compeleted,rej_flc_date)) lates_transaction_date ,ref_id From @tbl_ref_status Where spkid = 1800 Group by ref_id ) as B On A.ref_id = b.ref_id Inner Join @tbl_master C on a.ref_id= c.ref_idWheremaster_number = 000465787
Chirag