select cm.pk_id, cm.member_code, cm.member_name, cm.phone, cm.pk_settle_country, cm.pk_parent, cm.pk_place_parent, cm.place_dept, cm.pk_team_code, cm.pk_center_code, cm.category, cm.pk_settle_grade, cm.pk_awards, cm.purchase_status, cm.order_source, cm.is_real_name, cm.is_bus_license, cm.is_maker_space, cm.share_status, cm.pay_pwd, cm.register_authority, cm.nick_name from cu_member cm where cm.del_flag = 0 merge into cu_member a using ( select pk_member, max(new_level) pk_awards from cu_member_awards where period = #{period} 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.modified_time = sysdate 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) old_level from cu_member_awards where period = #{period} 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.old_level, a.modified_time = sysdate merge into cu_member a using (select pk_member, old_level, ba.pk_awards from ( select pk_member, max(old_level) old_level from cu_member_awards where period = #{period} and up_type = 1 and del_flag = 0 group by pk_member) ca inner join bd_range_awards ba on ca.old_level = ba.pk_id where ba.del_flag = 0) b on (a.pk_id = b.pk_member) when matched then update set a.pk_awards = b.pk_awards,a.pk_range_awards = b.old_level, 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) update cu_member set pk_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