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 a.pk_member, max(a.new_level) pk_grade from cu_member_grade a inner join( select pk_member, max(nvl(modified_time, creation_time)) creation_time from cu_member_grade where period = #{period} and del_flag = 0 group by pk_member) b on a.pk_member = b.pk_member and nvl(a.modified_time, a.creation_time) = b.creation_time group by a.pk_member ) b on (a.pk_id = b.pk_member) when matched then update set a.pk_settle_grade = b.pk_grade, 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_grade) pk_grade from ( select #{item.pkMember} pk_member, #{item.newLevel} pk_grade from dual ) group by pk_member ) b on (a.pk_id = b.pk_member) when matched then update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate 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 merge into cu_member a using ( select pk_member, min(pk_grade) pk_grade from( select #{item.pkMember} pk_member,#{item.newLevel} pk_grade from dual ) group by pk_member ) b on (a.pk_id = b.pk_member) when matched then update set a.pk_settle_grade = b.pk_grade,a.modified_time = sysdate merge into cu_member a using ( select cm.pk_id, m.new_level pk_grade from cu_member cm inner join( select a.* from cu_member_level a inner join ( select pk_member, max(pk_id) pk_id from cu_member_level where del_flag = 0 and up_type = 4 and upgrade_time >= #{startDate,jdbcType=DATE} and upgrade_time < #{endDate,jdbcType=DATE} group by pk_member) b on a.pk_id = b.pk_id) m on cm.pk_id = m.pk_member where cm.pk_settle_grade < m.new_level ) b on (a.pk_id = b.pk_id) when matched then update set a.pk_settle_grade = b.pk_grade, a.modified_time = sysdate