update ${rangeTableName} set new_box_num = 0, consume_box_num = 0, month_box_num = 0, new_consume_pv = 0, consume_pv = 0, month_consume_pv = 0, team_new_box_num = 0, team_box_num = 0, team_month_box_num = 0, team_new_pv = 0, team_consume_pv = 0, team_month_pv = 0, team_new_amount = 0, team_consume_amount = 0, team_month_amount = 0, recommend_num = 0, team_num = 0, enable_status = 1, 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, all_team_new_box_num = 0, all_team_box_num = 0, all_team_month_box_num = 0, all_team_new_pv = 0, all_team_consume_pv = 0, all_team_month_pv = 0 merge into ${rangeTableName} a using( select pk_member, pk_grade, pk_awards, pk_share_awards, enable_status, new_box_num, consume_box_num, month_box_num, new_consume_pv, consume_pv, month_consume_pv, team_new_box_num, team_box_num, team_month_box_num, team_new_pv, team_consume_pv, team_month_pv, team_new_amount, team_consume_amount, team_month_amount, recommend_num, team_num, big_box_num, small_box_num, big_team_pv, small_team_pv, all_team_new_box_num, all_team_box_num, all_team_month_box_num, all_team_new_pv, all_team_consume_pv, all_team_month_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.consume_pv = b.consume_pv, a.team_box_num = b.team_box_num, a.team_consume_pv = b.team_consume_pv, a.team_consume_amount = b.team_consume_amount, 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.all_team_new_box_num = b.all_team_new_box_num, a.all_team_box_num = b.all_team_box_num, a.all_team_new_pv = b.all_team_new_pv, a.all_team_consume_pv = b.all_team_consume_pv ,a.month_box_num = b.month_box_num ,a.month_consume_pv = b.month_consume_pv ,a.team_month_box_num = b.team_month_box_num ,a.team_month_pv = b.team_month_pv ,a.team_month_amount = b.team_month_amount ,a.all_team_month_box_num = b.all_team_month_box_num ,a.all_team_month_pv = b.all_team_month_pv merge into ${rangeTableName} a using ( select #{item.pkMember} pk_member, #{item.pkAwards} pk_awards, #{item.pkGrade} pk_grade, #{item.pkShareAwards} pk_share_awards, #{item.newBoxNum} new_box_num, #{item.consumeBoxNum} consume_box_num, #{item.monthBoxNum} month_box_num, #{item.newConsumePv} new_consume_pv, #{item.consumePv} consume_pv, #{item.monthConsumePv} month_consume_pv, #{item.teamNewBoxNum} team_new_box_num, #{item.teamBoxNum} team_box_num, #{item.teamMonthBoxNum} team_month_box_num, #{item.teamNewPv} team_new_pv, #{item.teamConsumePv} team_consume_pv, #{item.teamMonthPv} team_month_pv, #{item.teamNewAmount} team_new_amount, #{item.teamConsumeAmount} team_consume_amount, #{item.teamMonthAmount} team_month_amount, #{item.recommendNum} recommend_num, #{item.teamNum} team_num, #{item.enableStatus} enable_status, #{item.allTeamNewBoxNum} all_team_new_box_num, #{item.allTeamNewPv} all_team_new_pv, #{item.allTeamBoxNum} all_team_box_num, #{item.allTeamConsumePv} all_team_consume_pv, #{item.allTeamMonthBoxNum} all_team_month_box_num, #{item.allTeamMonthPv} all_team_month_pv 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.new_box_num = b.new_box_num, a.consume_box_num = b.consume_box_num, a.month_box_num = b.month_box_num, a.new_consume_pv = b.new_consume_pv, a.consume_pv = b.consume_pv, a.month_consume_pv = b.month_consume_pv, a.team_new_box_num = b.team_new_box_num, a.team_box_num = b.team_box_num, a.team_month_box_num = b.team_month_box_num, a.team_new_pv = b.team_new_pv, a.team_consume_pv = b.team_consume_pv, a.team_month_pv = b.team_month_pv, a.team_new_amount = b.team_new_amount, a.team_consume_amount = b.team_consume_amount, a.team_month_amount = b.team_month_amount, a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.enable_status = b.enable_status, a.all_team_new_box_num = b.all_team_new_box_num, a.all_team_new_pv = b.all_team_new_pv, a.all_team_box_num = b.all_team_box_num, a.all_team_consume_pv = b.all_team_consume_pv, a.all_team_month_box_num = b.all_team_month_box_num, a.all_team_month_pv = b.all_team_month_pv merge into ${secondRangeTableName} a using ( select a.pk_id pk_member, a.pk_parent, a.pk_settle_grade pk_grade, a.pk_awards, a.pk_range_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, pk_share_awards, enable_status, system_type) values (b.pk_member, b.pk_parent, b.pk_grade, b.pk_awards, b.pk_range_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, a.pk_range_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.pkShareAwards} pk_share_awards, #{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv, #{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv, #{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status, #{item.allNewBoxNum} all_new_box_num, #{item.allNewConsumePv} all_new_consume_pv, #{item.allTeamNewBoxNum} all_team_new_box_num, #{item.allTeamNewPv} all_team_new_pv 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.pk_share_awards = b.pk_share_awards, a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv, a.team_new_box_num = b.team_new_box_num, a.team_new_pv = b.team_new_pv, a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status, a.all_new_box_num = b.all_new_box_num, a.all_new_consume_pv = b.all_new_consume_pv, a.all_team_new_box_num = b.all_team_new_box_num, a.all_team_new_pv = b.all_team_new_pv merge into ${rangeTableName} a using ( select pk_id pk_member, pk_parent, pk_settle_grade, pk_awards, pk_range_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 , a.pk_share_awards = b.pk_range_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 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