写过一个查询脚本,很长,不过效率应该也满蛮低的
select f.PARA_DESC_TX as luck_region_name,e.join_region_name,e.brch_name,e.activity_code,e.name,e.card,e.phone,e.jointime,decode(e.type,'1', '1-乘车','2-报销') 参赛类型,e.backtime,e.join_region_num,decode(e.type,'1', '车次'||e.join_card_num,'') 参赛车次,decode(e.cert_flag,'2', e.cert_flag ||'-已中奖',e.cert_flag ||'-还未中奖') 是否中奖,decode(e.cert_flag,'2', '车次'||e.luck_card_num,'') 中奖车次,e.luck_region_num,e.brch_numfrom (select D.PARA_DESC_TX as join_region_name,c.brch_name,c.activity_code,c.name,c.card,c.phone,c.jointime,c.type,c.backtime,c.join_region_num,c.join_card_num,c.cert_flag,c.luck_card_num,c.luck_region_num,c.brch_numfrom (select t2.brch_name,t1.activity_code,t1.name,t1.card,t1.phone,t1.jointime,t1.type,t1.backtime,t1.join_region_num,t1.join_card_num,t1.cert_flag,t1.luck_card_num,t1.luck_region_num,t1.brch_numfrom (select a.activity_type as activity_code,a.NAME as name,a.ADDRESS as card,a.phone as phone, a.jointime as jointime ,a.isshare as type,a.remark3 as backtime ,substr(a.remark2,0,instr(a.remark2,'#')-1) as join_region_num,decode(a.isshare,'1', substr(a.remark,0,instr(a.remark,'#')-1),'') as join_card_num,a.cert_flag as cert_flag,decode(a.cert_flag,'2', decode(a.isshare,'1',substr(a.remark,instr(a.remark,'#')+1), ''), '') as luck_card_num ,decode(a.cert_flag,'2', substr(a.remark2,instr(a.remark2,'#')+1), '') as luck_region_num,a.remark4 as brch_numfrom t_gd_wx_activity awhere a.ACTIVITY_TYPE='0349') t1left join t_gd_wx_brch t2 on t1.brch_num=T2.BRCH_NO) cleft join t_gd_wx_para d on c.activity_code=d.para_valueand d.para_nm='REGION_INFO'and c.join_region_num=d.para_value2) eleft join t_gd_wx_para f on e.activity_code=f.para_valueand f.para_nm='REGION_INFO'and e.luck_region_num=f.para_value2
