@ -13,19 +13,30 @@
t.temperature,
t.collectTime,
t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
</sql>
<!-- 公共 JOIN: 只保留温度相关测点, 统一和振动看板保持相同的设备口径 -->
<!--
公共 JOIN: 只保留温度相关测点, 统一和振动看板保持相同的设备口径。
SQL Server 排序规则冲突规避: ON 条件中使用 COLLATE DATABASE_DEFAULT。
-->
<sql id= "baseJoin" >
INNER JOIN ems_base_monitor_info ebmi
ON t.monitorId = ebmi.monitor_code
ON
<choose >
<when test= "_databaseId == null or _databaseId == '' or _databaseId == 'sqlserver' or _databaseId == 'sql_server' or _databaseId == 'mssql' or _databaseId == 'SQL Server' or _databaseId == 'SQLSERVER' or _databaseId == 'SQL_SERVER' or _databaseId == 'SqlServer'" >
t.monitorId COLLATE DATABASE_DEFAULT = ebmi.monitor_code COLLATE DATABASE_DEFAULT
</when>
<otherwise >
t.monitorId = ebmi.monitor_code
</otherwise>
</choose>
AND ebmi.monitor_type IN (5, 6)
</sql>
<!-- 公共过滤:温度只要求有值,不再把 0℃ / 负温 / 高温场景误判成脏数据 -->
<!-- 公共过滤: 屏蔽 0 以下和 80 以上的异常温度 数据 -->
<sql id= "tempFilter" >
AND t.temperature IS NOT NULL
AND t.temperature BETWEEN 0 AND 79
</sql>
<!-- 公共时间过滤 -->
@ -57,7 +68,7 @@
WITH all_data AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime, t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -80,7 +91,7 @@
WITH all_data AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime, t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -122,7 +133,7 @@
WITH all_data AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime, t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -146,7 +157,7 @@
WITH all_data AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime, t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -170,7 +181,7 @@
WITH all_data AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime, t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -197,7 +208,7 @@
WITH all_data AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime, t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -223,7 +234,7 @@
WITH all_data AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime, t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -248,7 +259,7 @@
WITH all_data AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime, t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -273,7 +284,7 @@
WITH all_data AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime, t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -299,7 +310,7 @@
WITH all_data AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime, t.recodeTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -327,7 +338,7 @@
SELECT
FORMAT(t.collectTime, 'yyyy-MM-dd HH:mm:00') AS statTime,
t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
ROUND(AVG(t.temperature), 2) AS avgTemp,
COUNT(*) AS sampleCount
FROM ${tableName} t
@ -338,7 +349,7 @@
<include refid= "tempFilter" />
</where>
GROUP BY FORMAT(t.collectTime, 'yyyy-MM-dd HH:mm:00'), t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId)
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY statTime
</select>
@ -349,7 +360,7 @@
SELECT
FORMAT(t.collectTime, 'yyyy-MM-dd HH:00:00') AS statTime,
t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
ROUND(AVG(t.temperature), 2) AS avgTemp,
ROUND(MAX(t.temperature), 2) AS maxTemp,
ROUND(MIN(t.temperature), 2) AS minTemp,
@ -362,7 +373,7 @@
<include refid= "tempFilter" />
</where>
GROUP BY FORMAT(t.collectTime, 'yyyy-MM-dd HH:00:00'), t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId)
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY statTime
</select>
@ -394,7 +405,7 @@
</otherwise>
</choose> AS statTime,
t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
ROUND(AVG(t.temperature), 2) AS avgTemp
FROM ${tableName} t
<include refid= "baseJoin" />
@ -421,7 +432,7 @@
</otherwise>
</choose> ,
t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId)
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY statTime, monitorId
</select>
@ -499,7 +510,7 @@
WITH base AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -606,7 +617,7 @@
<select id= "selectHighTempEvents" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardAnomalyVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
t.temperature,
t.collectTime,
'HIGH_TEMP' AS anomalyType
@ -642,7 +653,7 @@
<select id= "selectLowTempEvents" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardAnomalyVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
t.temperature,
t.collectTime,
'LOW_TEMP' AS anomalyType
@ -679,7 +690,7 @@
WITH base AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -723,7 +734,7 @@
WITH base AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.temperature, t.collectTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -783,7 +794,7 @@
<select id= "selectJitterAnomalies" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardAnomalyVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
FORMAT(t.collectTime, 'yyyy-MM-dd HH:00:00') AS statTime,
ROUND(AVG(t.temperature), 2) AS avgTemp,
ROUND(STDEVP(t.temperature), 4) AS tempStddev,
@ -794,7 +805,7 @@
<include refid= "timeFilter" />
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId),
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ),
FORMAT(t.collectTime, 'yyyy-MM-dd HH:00:00')
HAVING STDEVP(t.temperature) >= #{stddevThreshold}
</foreach>
@ -807,7 +818,7 @@
<select id= "selectAvgTempRanking" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardComparisonVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
ROUND(AVG(t.temperature), 2) AS avgTemp
FROM ${tableName} t
<include refid= "baseJoin" />
@ -815,7 +826,7 @@
<include refid= "timeFilter" />
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY avgTemp DESC
</select>
@ -824,7 +835,7 @@
<select id= "selectStabilityRanking" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardComparisonVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
ROUND(STDEVP(t.temperature), 4) AS tempStddev
FROM ${tableName} t
<include refid= "baseJoin" />
@ -832,7 +843,7 @@
<include refid= "timeFilter" />
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY tempStddev ASC
</select>
@ -842,7 +853,7 @@
WITH today_avg AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
AVG(t.temperature) AS avgTemp
FROM ${tableName} t
<include refid= "baseJoin" />
@ -850,13 +861,13 @@
t.collectTime >= #{todayStartTime} AND t.collectTime < #{todayEndTime}
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
),
yesterday_avg AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
AVG(t.temperature) AS avgTemp
FROM ${tableName} t
<include refid= "baseJoin" />
@ -864,7 +875,7 @@
t.collectTime >= #{yesterdayStartTime} AND t.collectTime < #{yesterdayEndTime}
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
)
SELECT t.monitorId, t.monitorName,
@ -895,7 +906,7 @@
FROM (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
MAX(t.temperature) AS maxTemp,
MIN(t.temperature) AS minTemp,
SUM(t.temperature) AS sumTemp,
@ -906,7 +917,7 @@
<include refid= "timeFilter" />
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
) sub
GROUP BY sub.monitorId, sub.monitorName
@ -917,7 +928,7 @@
<select id= "selectFluctuationCompare" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardComparisonVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
MAX(t.temperature) - MIN(t.temperature) AS tempRange
FROM ${tableName} t
<include refid= "baseJoin" />
@ -925,7 +936,7 @@
<include refid= "timeFilter" />
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY tempRange DESC
</select>
@ -960,7 +971,7 @@
<select id= "selectTimeReversal" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardQualityVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
t.temperature,
t.collectTime,
t.recodeTime,
@ -1003,7 +1014,7 @@
WITH base AS (
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId, t.collectTime,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName
FROM ${tableName} t
<include refid= "baseJoin" />
<where >
@ -1053,7 +1064,7 @@
<select id= "selectCompletenessRate" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardQualityVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
COUNT(*) AS actualCount,
#{expectedCount} AS expectedCount,
ROUND(CAST(COUNT(*) AS FLOAT) / #{expectedCount}, 4) AS completenessRate
@ -1063,7 +1074,7 @@
<include refid= "timeFilter" />
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY completenessRate ASC
</select>
@ -1072,7 +1083,7 @@
<select id= "selectMonitorActivity" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardQualityVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
COUNT(*) AS actualCount,
MIN(t.collectTime) AS firstTime,
MAX(t.collectTime) AS lastTime
@ -1082,7 +1093,7 @@
<include refid= "timeFilter" />
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY actualCount DESC
</select>
@ -1158,7 +1169,7 @@
</otherwise>
</choose> AS statBucket,
t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
ROUND(AVG(t.temperature), 2) AS avgTemp
FROM ${tableName} t
<include refid= "baseJoin" />
@ -1178,7 +1189,7 @@
DATEADD(MINUTE, DATEDIFF(MINUTE, 0, t.collectTime), 0)
</otherwise>
</choose> ,
t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
) sub
ORDER BY statTime, monitorId
@ -1189,7 +1200,7 @@
<select id= "selectTreemapData" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardAdvancedVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
ROUND(AVG(t.temperature), 2) AS avgTemp,
COUNT(*) AS sampleCount
FROM ${tableName} t
@ -1198,7 +1209,7 @@
<include refid= "timeFilter" />
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY avgTemp DESC
</select>
@ -1216,7 +1227,7 @@
ELSE '>=30'
END AS tempBucket,
t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
COUNT(*) AS sampleCount
FROM ${tableName} t
<include refid= "baseJoin" />
@ -1232,7 +1243,7 @@
WHEN t.temperature < 30 THEN '25-30'
ELSE '>=30'
END,
t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY tempBucket, monitorId
</select>
@ -1242,7 +1253,7 @@
<select id= "selectParallelData" resultType= "org.dromara.ems.report.domain.vo.tempboard.TempBoardAdvancedVo" >
<foreach collection= "tableNames" item= "tableName" separator= " UNION ALL " >
SELECT t.monitorId,
COALESCE(ebmi.monitor_name, t.monitorId) AS monitorName,
COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT ) AS monitorName,
ROUND(AVG(t.temperature), 2) AS avgTemp,
ROUND(MAX(t.temperature), 2) AS maxTemp,
ROUND(MIN(t.temperature), 2) AS minTemp,
@ -1254,7 +1265,7 @@
<include refid= "timeFilter" />
<include refid= "tempFilter" />
</where>
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name, t.monitorId)
GROUP BY t.monitorId, COALESCE(ebmi.monitor_name COLLATE DATABASE_DEFAULT , t.monitorId COLLATE DATABASE_DEFAULT )
</foreach>
ORDER BY avgTemp DESC
</select>