sql优化
This commit is contained in:
@ -305,16 +305,23 @@
|
||||
</delete>
|
||||
|
||||
<select id="selectEmsBatteryStackBySiteId" parameterType="String" resultType="com.xzzn.ems.domain.vo.BMSOverViewVo">
|
||||
select td.device_name as deviceName,tmp.work_status as workStatus,
|
||||
tmp.pcs_communication_status as pcsCommunicationStatus,tmp.ems_communication_status as emsCommunicationStatus,
|
||||
tmp.total_voltage as totalVoltage,tmp.chargeable_capacity as chargeableCapacity,tmp.total_charged_capacity as totalChargedCapacity,
|
||||
tmp.total_current as totalCurrent,tmp.dischargeable_capacity as dischargeableCapacity,tmp.total_discharged_capacity as totalDischargedCapacity,
|
||||
tmp.soh as soh,tmp.average_temperature as averageTemperature,tmp.insulation_resistance as insulationResistance,
|
||||
tmp.current_soc as currentSoc,tmp.site_id as siteId,tmp.device_id as deviceId
|
||||
from ems_battery_stack tmp left join ems_devices_setting td on tmp.device_id = td.device_id and tmp.site_id = td.site_id
|
||||
where tmp.site_id = #{siteId}
|
||||
and tmp.update_time = (select MAX(t.update_time) FROM ems_battery_stack t where t.site_id = tmp.site_id
|
||||
and t.device_id = tmp.device_id)
|
||||
SELECT td.device_name as deviceName,tmp.work_status as workStatus,
|
||||
tmp.pcs_communication_status as pcsCommunicationStatus,tmp.ems_communication_status as emsCommunicationStatus,
|
||||
tmp.total_voltage as totalVoltage,tmp.chargeable_capacity as chargeableCapacity,
|
||||
tmp.total_charged_capacity as totalChargedCapacity,
|
||||
tmp.total_current as totalCurrent,tmp.dischargeable_capacity as dischargeableCapacity,
|
||||
tmp.total_discharged_capacity as totalDischargedCapacity,
|
||||
tmp.soh as soh,tmp.average_temperature as averageTemperature,tmp.insulation_resistance as insulationResistance,
|
||||
tmp.current_soc as currentSoc,tmp.site_id as siteId,tmp.device_id as deviceId
|
||||
FROM ems_battery_stack tmp
|
||||
left join ems_devices_setting td on tmp.device_id = td.device_id and tmp.site_id = td.site_id
|
||||
INNER JOIN (
|
||||
SELECT p.site_id, p.device_id, MAX(p.update_time) AS max_update_time
|
||||
FROM ems_battery_stack p
|
||||
WHERE p.site_id = #{siteId}
|
||||
GROUP BY p.site_id,p.device_id
|
||||
) latest on tmp.device_id = latest.device_id and tmp.update_time = latest.max_update_time
|
||||
WHERE tmp.site_id = #{siteId}
|
||||
order by tmp.device_id
|
||||
</select>
|
||||
</mapper>
|
Reference in New Issue
Block a user