sql - can we write better query than this? to reduce performance issues -
select (select omh_recv_bic sc_omh_m sc_omh_trans_sno=103) 'sender\receiver', (select omh_msg_trm_dt sc_omh_m sc_omh_trans_sno=103) 'send\receivedate', (select omh_msg_type sc_omh_m sc_omh_trans_sno=103) 'message type', (select omd_sfld_val sc_omd_t omd_fld_tag=20 , omd_sfld_ord=1 , omd_trans_sno=103) 'senders reference', (select omd_sfld_val sc_omd_t omd_fld_tag=50 , omd_sfld_ord=3 , omd_trans_sno=103) 'ordering customer', (select omd_sfld_val sc_omd_t omd_fld_tag=59 , omd_sfld_ord=3 , omd_trans_sno=103) 'beneficiary customer', (select omd_sfld_val sc_omd_t omd_fld_tag=32 , omd_sfld_ord=2and omd_trans_sno=103) 'currency code', (select omd_sfld_val sc_omd_t omd_fld_tag=32 , omd_sfld_ord=1and omd_trans_sno=103) 'date', (select omd_sfld_val sc_omd_t omd_fld_tag=32 , omd_sfld_ord=3and omd_trans_sno=103) 'value'
select * ( select max(case when omd_fld_tag=20 , omd_sfld_ord=1 omd_sfld_val end) [senders reference], max(case when omd_fld_tag=50 , omd_sfld_ord=3 omd_sfld_val end) [ordering customer], max(case when omd_fld_tag=59 , omd_sfld_ord=3 omd_sfld_val end) [beneficiary customer], max(case when omd_fld_tag=32 , omd_sfld_ord=2 omd_sfld_val end) [currency code], max(case when omd_fld_tag=32 , omd_sfld_ord=1 omd_sfld_val end) [date], max(case when omd_fld_tag=32 , omd_sfld_ord=3 omd_sfld_val end) value sc_omd_t omd_trans_sno = 103 ) t join ( select max(omh_recv_bic) [sender\receiver], max(omh_msg_trm_dt) [send\receivedate], max(omh_msg_type) [message type] sc_omh_m sc_omh_trans_sno = 103 ) t2 on 1=1
Comments
Post a Comment