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.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
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_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
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