<insert id="insertReignFromReport"> <foreach collection="departIdLst" item="item" index="index" open="" close="" separator=";"> insert into t_preparation_ryzwl( <include refid="baseInCol"/> ) select pe.department_id, COALESCE(count(pe.id),0) as strength_amount, COALESCE(CONCAT( ROUND(sum(case when sb.reign=1 then 1 when sb.reign=2 then 1 when sb.reign=3 then 1 when sb.reign=4 then 1 when sb.reign=5 then 1 end) / count(pe.id) * 100,2) ),0), COALESCE(sum(case when sb.reign=1 then 1 when sb.reign=2 then 1 when sb.reign=3 then 1 when sb.reign=4 then 1 when sb.reign=5 then 1 end),0), COALESCE(sum(case when sb.reign=1 then 1 end),0), COALESCE(sum(case when sb.reign=2 then 1 when sb.reign=3 then 1 when sb.reign=4 then 1 when sb.reign=5 then 1 end),0), COALESCE(sum(case when sb.reign=6 then 1 when sb.reign=7 then 1 when sb.reign=8 then 1 when sb.reign=9 then 1 end),0), COALESCE(sum(case when sb.reign=10 then 1 end),0), COALESCE(sum(case when sb.reign=11 then 1 end),0), COALESCE(sum(case when sb.reign=12 then 1 end),0), COALESCE(sum(case when sb.reign=13 then 1 end),0), #{inuser}, pe.person_type from t_preparation_rydtsb as sb inner join t_person as pe on sb.person_id = pe.id where sb.deleted = '0' and pe.deleted = '0' and pe.retired = '0' and pe.department_id = #{item} and date_format(sb.report_time,'%Y-%m-%d') = (SELECT MAX(date_format(report_time, '%Y-%m-%d')) FROM t_preparation_rydtsb sb LEFT JOIN t_person pe ON sb.person_id = pe.id where pe.department_id = #{item}) group by pe.person_type </foreach> </insert>