Kaynağa Gözat

解决sql查询 别名做筛选条件查询错误

wangzl 3 ay önce
ebeveyn
işleme
e0ad0e8cff

+ 17 - 15
pump-web/src/main/resources/mapper/BusPumpEntityMapper.xml

@@ -280,6 +280,7 @@
         SELECT last_upload_time,pump_code  FROM bus_pump where bus_pump.pump_code=#{pumpCode} ORDER BY last_upload_time desc limit 1;
     </select>
     <select id="queryPumpInfoNew" resultType="com.tuoren.web.layer.d0.PumpVo">
+       select * from (
         SELECT
         pi.patient_id,
         pi.ward_code AS patientInfoWard,
@@ -311,51 +312,52 @@
         LEFT JOIN bus_patient pi ON p.pump_code = pi.pump_code
         AND p.patient_code = pi.patient_code
         AND p.hospital_code = pi.hospital_code
+        ) as result
         <where>
             <if test="pumpParam.hospitalCode != null and pumpParam.hospitalCode != ''">
-                AND p.hospital_code = #{pumpParam.hospitalCode}
+                AND result.hospital_code = #{pumpParam.hospitalCode}
             </if>
             <if test="pumpParam.patientCode != null and pumpParam.patientCode != ''">
-                AND p.patient_code = #{pumpParam.patientCode}
+                AND result.patient_code = #{pumpParam.patientCode}
             </if>
             <if test="pumpParam.pumpCode != null and pumpParam.pumpCode != ''">
-                AND p.pump_code = #{pumpParam.pumpCode}
+                AND result.pump_code = #{pumpParam.pumpCode}
             </if>
             <if test="pumpParam.productCode != null and pumpParam.productCode != ''">
-                AND p.product_code = #{pumpParam.productCode}
+                AND result.product_code = #{pumpParam.productCode}
             </if>
             <if test="pumpParam.wardCode != null and pumpParam.wardCode != ''">
-                AND pi.ward_code = #{pumpParam.wardCode}
+                AND result.ward_code = #{pumpParam.wardCode}
             </if>
             <if test="pumpParam.scoreType != null and pumpParam.scoreType != ''">
-                AND p.scoreType = #{pumpParam.scoreType}
+                AND result.scoreType = #{pumpParam.scoreType}
             </if>
             <if test="pumpParam.exceptionFlag != null">
-                AND pi.exception_flag = #{pumpParam.exceptionFlag}
+                AND result.exception_flag = #{pumpParam.exceptionFlag}
             </if>
             <if test="pumpParam.timeRange != null and pumpParam.timeRange.size() > 0">
-                AND p.start_time &gt;= #{pumpParam.timeRange[0]}
+                AND result.start_time &gt;= #{pumpParam.timeRange[0]}
             </if>
             <if test="pumpParam.timeRange != null and pumpParam.timeRange.size() > 1">
-                AND p.start_time &lt;= #{pumpParam.timeRange[1]}
+                AND result.start_time &lt;= #{pumpParam.timeRange[1]}
             </if>
             <if test="pumpParam.runStatus != null">
-                AND p.run_state = #{pumpParam.runStatus}
+                AND result.run_state = #{pumpParam.runStatus}
             </if>
             <if test="pumpParam.alarm != null and pumpParam.alarm">
-                AND p.view_state in
+                AND result.view_state in
                 <foreach item="item" collection="pumpParam.alarmList" separator="," open="(" close=")">
                     #{item}
                 </foreach>
             </if>
             <if test="pumpParam.alarm != null and !pumpParam.alarm">
-                AND p.view_state not in
+                AND result.view_state not in
                 <foreach item="item" collection="pumpParam.alarmList" separator="," open="(" close=")">
                     #{item}
                 </foreach>
             </if>
             <if test="pumpParam.tip != null and pumpParam.tip">
-                AND p.view_state in
+                AND result.view_state in
                 <foreach item="item" collection="pumpParam.tipList" separator="," open="(" close=")">
                     #{item}
                 </foreach>
@@ -368,10 +370,10 @@
             </if>
         </where>
         <if test="pumpParam.sort != null and !pumpParam.sort ">
-            ORDER BY pi.bed_code asc
+            ORDER BY result.bed_code asc
         </if>
         <if test="(pumpParam.sort != null and pumpParam.sort) or pumpParam.sort == null">
-            ORDER BY p.last_upload_time desc
+            ORDER BY result.last_upload_time desc
         </if>
     </select>