select supplier_id, sum(system_level = 'L1') as l1_granted, sum(system_level = 'L2') as l2_granted, sum(system_level = 'L3') as l3_granted from account_user where del_flag = '0' and supplier_id is not null group by supplier_id insert into account_provider( user_id, company_name, contact_name, contact_phone, credit_code, legal_person, region, register_date, address, license_url, l1_quota, l2_quota, l3_quota, status, remark, create_by, create_time )values( #{userId}, #{companyName}, #{contactName}, #{contactPhone}, #{creditCode}, #{legalPerson}, #{region}, #{registerDate}, #{address}, #{licenseUrl}, #{l1Quota}, #{l2Quota}, #{l3Quota}, #{status}, #{remark}, #{createBy}, sysdate() ) update account_provider company_name = #{companyName}, contact_name = #{contactName}, contact_phone = #{contactPhone}, credit_code = #{creditCode}, legal_person = #{legalPerson}, region = #{region}, register_date = #{registerDate}, address = #{address}, license_url = #{licenseUrl}, l1_quota = #{l1Quota}, l2_quota = #{l2Quota}, l3_quota = #{l3Quota}, status = #{status}, remark = #{remark}, update_by = #{updateBy}, update_time = sysdate() where id = #{id} and del_flag = '0'