|  |  | 
 |  |  |     select | 
 |  |  |     count(*) | 
 |  |  |     from se_client mtb | 
 |  |  |     where mtb.deleted != 0 | 
 |  |  |     where mtb.deleted != 1 | 
 |  |  |     <trim prefix="and" suffixOverrides="and"> | 
 |  |  |       <if test="name != null and name != ''"> | 
 |  |  |         mtb.name like concat('%', #{name}, '%') | 
 |  |  | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <select id="selectMonthStatistics" resultType="com.dy.pipIrrGlobal.voSt.VoStClientAmountMonth"> | 
 |  |  |   <select id="selectClientIds4MonthStatistics" resultType="com.dy.pipIrrGlobal.voSt.VoStClientIdAmountYearRecord"> | 
 |  |  |     select | 
 |  |  |     mtb.clientNum as clientNum, | 
 |  |  |     mtb.phone as clientPhone, | 
 |  |  |     mtb.address as clientAddress, | 
 |  |  |     <include refid="Base_Column_List_with_alias" > | 
 |  |  |       <property name="alias" value="stTb"/> | 
 |  |  |     </include> | 
 |  |  |     mtb.id as clientId | 
 |  |  |     from se_client mtb | 
 |  |  |     LEFT JOIN st_client_amount_month stTb on stTb.client_id = mtb.id | 
 |  |  |     where mtb.deleted != 0 | 
 |  |  |     where mtb.deleted != 1 | 
 |  |  |     <trim prefix="and" suffixOverrides="and"> | 
 |  |  |       <if test = "year != null"> | 
 |  |  |         stTb.year = #{year, jdbcType=INTEGER} | 
 |  |  |       </if> | 
 |  |  |       <if test="name != null and name != ''"> | 
 |  |  |         AND mtb.name like concat('%', #{name}, '%') | 
 |  |  |         mtb.name like concat('%', #{name}, '%') | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |     order by mtb.id DESC | 
 |  |  | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <select id="selectMonthStatistics" resultType="com.dy.pipIrrGlobal.voSt.VoStClientAmountMonth"> | 
 |  |  |     select | 
 |  |  |     mtb.clientNum as clientNum, | 
 |  |  |     mtb.name as clientName, | 
 |  |  |     mtb.phone as clientPhone, | 
 |  |  |     mtb.address as clientAddress, | 
 |  |  |     <include refid="Base_Column_List_with_alias" > | 
 |  |  |       <property name="alias" value="stTb"/> | 
 |  |  |     </include> | 
 |  |  |     from se_client mtb | 
 |  |  |     <if test="clientIdsJson != null and clientIdsJson !=''"> | 
 |  |  |       INNER JOIN JSON_TABLE( | 
 |  |  |       <!--'[{"clientId":"37142501020100215"},{"clientId":"37142501020100215"}]'--> | 
 |  |  |       #{clientIdsJson}, | 
 |  |  |       '$[*]' COLUMNS ( | 
 |  |  |       clientId BIGINT PATH '$.clientId' | 
 |  |  |       ) | 
 |  |  |       ) clientIdTb ON clientIdTb.clientId = mtb.id | 
 |  |  |     </if> | 
 |  |  |     LEFT JOIN | 
 |  |  |     ( | 
 |  |  |       select * | 
 |  |  |       from st_client_amount_month | 
 |  |  |       <where> | 
 |  |  |         <if test="year != null"> | 
 |  |  |           `year` = #{year,jdbcType=INTEGER} | 
 |  |  |         </if> | 
 |  |  |       </where> | 
 |  |  |     ) as stTb on stTb.client_id = mtb.id | 
 |  |  |     where mtb.deleted != 1 | 
 |  |  |     order by mtb.id DESC | 
 |  |  |   <!-- 2025-07-14 因为有clientIdsJson限制了数量,所以不再用limit了 | 
 |  |  |   <trim prefix="limit " > | 
 |  |  |     <if test="start != null and count != null"> | 
 |  |  |       #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |     </if> | 
 |  |  |   </trim> | 
 |  |  |    --> | 
 |  |  | </select> | 
 |  |  |  | 
 |  |  |   <!-- ////////////////////////////////// --> | 
 |  |  |  | 
 |  |  | <!-- ////////////////////////////////// --> | 
 |  |  |   <!-- 统计相关                         --> | 
 |  |  |   <!-- ////////////////////////////////// --> | 
 |  |  |   <select id="selectByYear" resultMap="BaseResultMap"> |