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