merge into ${rangeTableName} a
using (
select pk_member,min(consume_status) consume_status,max(pk_range_awards) pk_range_awards,
max(pk_awards) pk_awards,max(consume_pv) consume_pv,
max(month_pv) month_pv,max(new_pv) new_pv,max(new_team_pv) new_team_pv,max(effective_num) effective_num,
max(buy_effective_num) buy_effective_num,max(first_agent) first_agent,max(second_agent) second_agent,
max(team_consume_pv) team_consume_pv,max(team_month_pv) team_month_pv,max(small_area_pv) small_area_pv,
max(team_consume_amount) team_consume_amount,max(team_month_amount) team_month_amount,
max(assess_status) assess_status,max(dept_new_team_pv) dept_new_team_pv,
max(dept_team_consume_amount) dept_team_consume_amount,max(dept_team_consume_pv) dept_team_consume_pv,
max(dept_team_month_amount) dept_team_month_amount,max(dept_team_month_pv) dept_team_month_pv from(
select #{item.pkMember} pk_member,#{item.pkRangeAwards} pk_range_awards,#{item.pkAwards} pk_awards,
#{item.consumeStatus} consume_status,#{item.consumePv} consume_pv,#{item.monthPv} month_pv,
#{item.newPv} new_pv,#{item.newTeamPv} new_team_pv,#{item.effectiveNum} effective_num,
#{item.buyEffectiveNum} buy_effective_num,#{item.firstAgent} first_agent,#{item.secondAgent} second_agent,
#{item.teamConsumeAmount} team_consume_amount,#{item.teamMonthAmount} team_month_amount,
#{item.deptNewTeamPv} dept_new_team_pv,#{item.deptTeamConsumeAmount} dept_team_consume_amount,
#{item.deptTeamConsumePv} dept_team_consume_pv,#{item.deptTeamMonthAmount} dept_team_month_amount,
#{item.deptTeamMonthPv} dept_team_month_pv,
#{item.teamConsumePv} team_consume_pv,#{item.teamMonthPv} team_month_pv,#{item.smallAreaPv} small_area_pv,
#{item.assessStatus} assess_status from dual
)
group by pk_member
) b
on (a.pk_member=b.pk_member)
when matched then
update set a.pk_range_awards=b.pk_range_awards,a.pk_awards=b.pk_awards,
a.consume_status=b.consume_status,a.consume_pv=b.consume_pv,
a.month_pv=b.month_pv,a.effective_num=b.effective_num,
a.new_pv=b.new_pv,a.new_team_pv=b.new_team_pv,a.buy_effective_num=b.buy_effective_num,
a.first_agent=b.first_agent,a.second_agent=b.second_agent,a.team_consume_amount=b.team_consume_amount,
a.team_month_amount=b.team_month_amount,a.dept_new_team_pv=b.dept_new_team_pv,
a.dept_team_consume_amount=b.dept_team_consume_amount,
a.dept_team_consume_pv=b.dept_team_consume_pv,a.dept_team_month_amount=b.dept_team_month_amount,
a.dept_team_month_pv=b.dept_team_month_pv,
a.team_consume_pv=b.team_consume_pv,a.team_month_pv=b.team_month_pv,
a.small_area_pv=b.small_area_pv,a.assess_status=b.assess_status
merge into ${rangeTableName} a
using(
select pk_member,consume_status,consume_pv,month_pv,effective_num,dept_team_consume_amount,
buy_effective_num,first_agent,second_agent,recommend_num,team_consume_amount,dept_team_consume_pv,
dept_team_month_amount,dept_team_month_pv,
team_consume_pv,team_month_amount,team_month_pv,small_area_pv,assess_status from ${yesterdayRangeTableName}
) b
on (a.pk_member=b.pk_member)
when matched then
update set a.consume_status=b.consume_status,a.consume_pv=b.consume_pv,
a.effective_num=b.effective_num,a.buy_effective_num=b.buy_effective_num,
a.first_agent=b.first_agent,a.second_agent=b.second_agent,a.recommend_num=b.recommend_num,
a.team_consume_amount=b.team_consume_amount,a.team_consume_pv=b.team_consume_pv,a.small_area_pv=b.small_area_pv,
a.dept_team_consume_amount=b.dept_team_consume_amount,a.dept_team_consume_pv=b.dept_team_consume_pv
,a.dept_team_month_amount=b.dept_team_month_amount,a.dept_team_month_pv=b.dept_team_month_pv,
a.team_month_amount=b.team_month_amount,a.team_month_pv=b.team_month_pv,a.month_pv=b.month_pv,
a.assess_status=b.assess_status
update ${rangeTableName} set consume_pv=0,month_pv=0,new_pv=0,new_team_pv=0,dept_new_team_pv=0,
effective_num=0,buy_effective_num=0,first_agent=0,second_agent=0,recommend_num=0,
team_num=0,team_consume_amount=0,team_month_amount=0,dept_team_consume_amount=0,
dept_team_consume_pv=0,dept_team_month_amount=0,dept_team_month_pv=0,
team_consume_pv=0,team_month_pv=0,small_area_pv=0,consume_status=1
,assess_status=2
update ${rangeTableName} set assess_status=0 where purchase_status=0
merge into ${secondRangeTableName} a
using (
select a.pk_id pk_member,a.pk_parent,a.pk_range_awards,nvl(b.assess_status,3) assess_status,
nvl(b.consume_status,1) consume_status,
nvl(b.month_member,0) month_member 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
) b
on (a.pk_member=b.pk_member)
when not matched then
insert (pk_member,pk_parent,pk_range_awards,assess_status,month_member,consume_status)
values(b.pk_member,b.pk_parent,b.pk_range_awards,b.assess_status,b.month_member,b.consume_status)
merge into ${secondTableName} a
using (
select #{item.pkMember} pk_member,#{item.pkRangeAwards} pk_range_awards,#{item.consumeStatus} consume_status,
#{item.newPv} new_pv,#{item.newEffectiveNum} new_effective_num,#{item.newTeamPv} new_team_pv,
#{item.assessStatus} assess_status,#{item.buyEffectiveNum} buy_effective_num,
#{item.firstAgent} first_agent,#{item.secondAgent} second_agent,
#{item.deptNewTeamPv} dept_new_team_pv from dual
) b
on (a.pk_member=b.pk_member)
when matched then
update set a.pk_range_awards=b.pk_range_awards,a.new_pv=b.new_pv,a.new_effective_num=b.new_effective_num,
a.new_team_pv=b.new_team_pv,a.assess_status=b.assess_status,a.buy_effective_num=b.buy_effective_num,
a.first_agent=b.first_agent,a.second_agent=b.second_agent,a.dept_new_team_pv=b.dept_new_team_pv,
a.consume_status=b.consume_status
merge into ${secondTableName} a
using (
select #{item.pkMember} pk_member,#{item.pkParent} pk_parent,#{item.pkRangeAwards} pk_range_awards,
#{item.newPv} new_pv,#{item.newTeamPv} new_team_pv,#{item.newEffectiveNum} new_effective_num,
#{item.assessStatus} assess_status,#{item.monthMember} month_member from dual
) b
on (a.pk_member=b.pk_member)
when not matched then
insert(pk_member,pk_parent,pk_range_awards,new_pv,new_team_pv,new_effective_num,assess_status,month_member)
values (b.pk_member,b.pk_parent,b.pk_range_awards,b.new_pv,b.new_team_pv,b.new_effective_num,b.assess_status,b.month_member)
when matched then
update set a.pk_range_awards=b.pk_range_awards,a.new_pv=b.new_pv,a.new_team_pv=b.new_team_pv