merge into cu_member a
using (
select pk_member, max(new_level) pk_awards
from cu_member_awards
where period = #{period} and award_type = #{awardType}
and del_flag = 0
group by pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards,
a.pk_range_awards = b.pk_awards,
a.modified_time = sysdate
merge into cu_member a
using (select c1.*
from (select pk_member, max(new_level) pk_awards
from cu_member_awards
where period = #{period}
and award_type = #{awardType}
and del_flag = 0
group by pk_member) c1
inner join cu_member c2
on c1.pk_member = c2.pk_id
and c1.pk_awards > c2.pk_max_awards) b
on (a.pk_id = b.pk_member)
when matched then
update set a.pk_max_awards = b.pk_awards, a.modified_time = sysdate
merge into cu_member a
using (select pk_member, max(old_level) pk_awards
from cu_member_awards ca
inner join cu_member cm
on ca.pk_member = cm.pk_id
where ca.period = #{period}
and ca.up_type = 1
and award_type = #{awardType}
and ca.del_flag = 0
and cm.pk_awards < ca.new_level
and cm.pk_range_awards < ca.new_level
group by ca.pk_member) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards,
a.pk_range_awards = b.pk_awards,
a.modified_time = sysdate
merge into cu_member a
using (
select y.pk_member, y.pk_awards
from cu_member x
inner join (
select a.pk_member,a.new_level pk_awards
from cu_member_awards a
inner join (
select pk_member, max(pk_id) pk_id
from cu_member_awards
where del_flag = 0
and up_type = 2
and end_validity_date <= #{settleDate, jdbcType=DATE}
and award_type = #{awardType}
group by pk_member) b
on a.pk_id = b.pk_id
where a.del_flag = 0
) y
on x.pk_id = y.pk_member
where
x.pk_awards < y.pk_awards
x.pk_range_awards < y.pk_awards
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards,
a.pk_range_awards = b.pk_awards,
a.modified_time = sysdate
update cu_member
set pk_awards = (select pk_id from bd_awards where awards_value = 0),
pk_range_awards = (select pk_id from bd_awards where awards_value = 0)
update cu_member
set pk_awards = (select pk_id from bd_awards where awards_value = 5),
pk_range_awards = (select pk_id from bd_awards where awards_value = 5)
where pk_settle_grade = (
select pk_id
from bd_grade
where grade_value = 70
and del_flag = 0
)
merge into cu_member a
using (
select pk_member, max(pk_awards) pk_awards from (
select
#{item.pkMember} pk_member,
#{item.newLevel} pk_awards,
#{item.awardType} award_type
from dual
)
where award_type = #{awardType}
group by pk_member
) b
on (a.pk_id = b.pk_member)
when matched then
update set
a.pk_awards = b.pk_awards,
a.pk_range_awards = b.pk_awards,
a.modified_time = sysdate