update ${rangeTableName} set consume_box_num=0, new_box_num=0, team_box_num=0, month_box_num=0, team_new_box_num=0, pk_share_awards=(select pk_id from BD_AWARDS where awards_value = 0), consume_pv=0, month_consume_pv=0, new_consume_pv=0, team_consume_amount=0, team_consume_pv=0, enable_status=1, team_month_amount=0, team_month_pv=0, team_new_amount=0, team_new_pv=0, recommend_num=0, team_num=0, pk_grade= (select pk_id from bd_grade where del_flag = 0 and grade_value = 20), region_address=0, big_box_num=0, small_box_num=0, big_team_pv=0, small_team_pv=0 merge into ${rangeTableName} a using( select pk_member,consume_box_num,new_box_num,team_box_num,month_box_num,team_new_box_num,enable_status, consume_pv,month_consume_pv,new_consume_pv,team_consume_amount,team_consume_pv,pk_share_awards, team_month_amount,team_month_pv,team_new_amount,team_new_pv,recommend_num,team_num,pk_grade, big_box_num,small_box_num,big_team_pv,small_team_pv from ${yesterdayRangeTableName} ) b on (a.pk_member=b.pk_member) when matched then update set a.consume_box_num=b.consume_box_num,a.team_box_num=b.team_box_num, a.consume_pv=b.consume_pv,a.team_consume_amount=b.team_consume_amount,a.team_consume_pv=b.team_consume_pv, a.recommend_num=b.recommend_num,a.team_num=b.team_num,a.pk_grade=b.pk_grade,a.enable_status=b.enable_status, a.big_box_num=b.big_box_num,a.small_box_num=b.small_box_num, a.big_team_pv=b.big_team_pv,a.small_team_pv=b.small_team_pv ,a.month_box_num=b.month_box_num,a.month_consume_pv=b.month_consume_pv,a.pk_share_awards=b.pk_share_awards, a.team_month_amount=b.team_month_amount,a.team_month_pv=b.team_month_pv merge into ${rangeTableName} a using ( select #{item.pkMember} pk_member,#{item.pkAwards} pk_awards,#{item.pkGrade} pk_grade, #{item.consumeBoxNum} consume_box_num,#{item.newBoxNum} new_bosx_num,#{item.pkShareAwards} pk_share_awards, #{item.teamBoxNum} team_box_num,#{item.monthBoxNum} month_box_num,#{item.teamNewBoxNum} team_new_box_num, #{item.consumePv} consume_pv,#{item.monthConsumePv} month_consume_pv, #{item.newConsumePv} new_consume_pv,#{item.teamConsumeAmount} team_consume_amount, #{item.teamMonthAmount} team_month_amount,#{item.teamMonthPv} team_month_pv, #{item.teamNewPv} team_new_pv,#{item.teamNewAmount} team_new_amount, #{item.teamConsumePv} team_consume_pv,#{item.newBoxNum} new_box_num, #{item.recommendNum} recommend_num,#{item.teamNum} team_num,#{item.enableStatus} enable_status from dual ) b on (a.pk_member=b.pk_member) when matched then update set a.pk_awards=b.pk_awards,a.pk_grade=b.pk_grade,a.pk_share_awards=b.pk_share_awards, a.consume_box_num=b.consume_box_num,a.new_box_num=b.new_box_num,a.team_box_num=b.team_box_num, a.month_box_num=b.month_box_num,a.team_new_box_num=b.team_new_box_num, a.consume_pv=b.consume_pv,a.month_consume_pv=b.month_consume_pv,a.new_consume_pv=b.new_consume_pv, a.team_consume_amount=b.team_consume_amount,a.team_consume_pv=b.team_consume_pv, a.team_month_amount=b.team_month_amount,a.team_month_pv=b.team_month_pv, a.team_new_amount=b.team_new_amount,a.team_new_pv=b.team_new_pv, a.recommend_num=b.recommend_num,a.team_num=b.team_num,a.enable_status=b.enable_status merge into ${secondRangeTableName} a using ( select a.pk_id pk_member, a.pk_parent, a.pk_settle_grade pk_grade, a.pk_awards, a.is_activate enable_status, a.system_type from (select * from cu_member where del_flag = 0 start with pk_id = #{pkMember} connect by pk_id = prior pk_parent ) a ) b on (a.pk_member = b.pk_member) when not matched then insert (pk_member, pk_parent, pk_grade, pk_awards, enable_status, system_type) values (b.pk_member, b.pk_parent, b.pk_grade, b.pk_awards, b.enable_status, b.system_type) merge into ${secondRangeTableName} a using ( select a.pk_id pk_member, a.pk_parent, a.pk_settle_grade pk_grade, a.pk_awards, nvl(b.enable_status, 1) enable_status from (select * from cu_member where del_flag = 0 start with pk_id = #{pkMember} connect by pk_id = prior pk_parent ) a left join ${rangeTableName} b on a.pk_id = b.pk_member where b.enable_status = 0 ) b on (a.pk_member = b.pk_member) when matched then update set a.enable_status = b.enable_status, a.pk_grade = b.pk_grade merge into ${secondTableName} a using ( select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards, #{item.newConsumePv} new_consume_pv, #{item.teamNewAmount} team_new_amount, #{item.teamNewPv} team_new_pv, #{item.teamNewBoxNum} team_new_box_num, #{item.newBoxNum} new_box_num, #{item.enableStatus} enable_status from dual ) b on (a.pk_member = b.pk_member) when matched then update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards, a.new_consume_pv = b.new_consume_pv, a.team_new_amount = b.team_new_amount, a.team_new_pv = b.team_new_pv, a.team_new_box_num = b.team_new_box_num, a.new_box_num = b.new_box_num, a.enable_status = b.enable_status merge into ${rangeTableName} a using ( select pk_id pk_member, pk_parent, pk_settle_grade, pk_awards from cu_member start with pk_id = #{pkMember} connect by prior pk_parent = pk_id ) b on (a.pk_member = b.pk_member) when matched then update set a.pk_grade = b.pk_settle_grade, a.pk_awards = b.pk_awards merge into ${rangeTableName} a using ( select cm.pk_member, cr.county region_address from ${rangeTableName} cm inner join cu_member_retail_region cr on cr.pk_member = cm.pk_member and cr.effective = 0 and cr.del_flag = 0 where cr.creation_time < #{settleDate,jdbcType=DATE}) b on (a.pk_member = b.pk_member) when matched then update set a.region_address = b.region_address merge into ${rangeTableName} a using ( select a.* from cu_member_spe_retail a inner join( select member_code, max(nvl(modified_time, creation_time)) creation_time from cu_member_spe_retail where del_flag = 0 and period = #{period} group by member_code) b on a.member_code = b.member_code and nvl(a.modified_time, a.creation_time) = b.creation_time ) b on (a.member_code = b.member_code) when matched then update set a.big_box_num = b.team_box_num - b.small_box_num,a.small_box_num = b.small_box_num, a.team_box_num = a.team_box_num + b.team_box_num,a.team_consume_pv = a.team_consume_pv + b.total_team_pv, a.team_month_pv = a.team_month_pv + b.total_team_pv, a.big_team_pv = b.total_team_pv - b.small_area_pv,a.small_team_pv = b.small_area_pv merge into ${rangeTableName} a using ( select * from ${beforeTableName} a inner join( select cr.* from cu_member_spe_retail cr inner join( select member_code, max(pk_id) pk_id from cu_member_spe_retail where period < #{period} and del_flag = 0 group by member_code ) b on cr.member_code = b.member_code where cr.period = #{period} and cr.del_flag = 0) b on a.member_code = b.member_code ) b on (a.pk_member = b.pk_member) when matched then update set a.big_box_num = 0,a.small_box_num = 0, a.team_box_num = a.team_box_num - a.big_box_num - a.small_box_num