INSERT INTO sms_day_report(
TENANT_ID, YEAR, MONTH, DAY, HOUR, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID,
ATTRIBUTE_NAME, MIN_VALUE, MAX_VALUE, AVG_VALUE, SUM_VALUE, LATEST_VALUE, COLLECT_DATE)
VALUES
(#{item.tenantId},#{item.year},#{item.month},#{item.day},#{item.hour},#{item.parentSceneId},#{item.parentSceneName},#{item.sceneId},#{item.sceneName},#{item.deviceId},#{item.deviceName},#{item.deviceCode},#{item.attributeId},
#{item.attributeName},#{item.minValue},#{item.maxValue},#{item.avgValue},#{item.sumValue},#{item.latestValue},#{item.collectDate})
INSERT INTO sms_year_report( TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH, MIN_VALUE, MAX_VALUE, AVG_VALUE, SUM_VALUE, LATEST_VALUE, COLLECT_DATE)
select TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH
,min(MIN_VALUE) MIN_VALUE
,max(MAX_VALUE) MAX_VALUE
,avg(AVG_VALUE) AVG_VALUE
,sum(SUM_VALUE) SUM_VALUE
,(select LATEST_VALUE from sms_day_report where DEVICE_ID =a.DEVICE_ID and ATTRIBUTE_ID = a.ATTRIBUTE_ID and COLLECT_DATE = max(a.COLLECT_DATE)) LATEST_VALUE
,max(COLLECT_DATE) COLLECT_DATE
from sms_month_report a
where year =#{year} and month =#{month}
group by TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH
INSERT INTO sms_month_report( TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH, DAY, MIN_VALUE, MAX_VALUE, AVG_VALUE, SUM_VALUE, LATEST_VALUE, COLLECT_DATE)
select TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH, DAY
,min(MIN_VALUE) MIN_VALUE
,max(MAX_VALUE) MAX_VALUE
,avg(AVG_VALUE) AVG_VALUE
,sum(SUM_VALUE) SUM_VALUE
,(select LATEST_VALUE from sms_day_report where DEVICE_ID =a.DEVICE_ID and ATTRIBUTE_ID = a.ATTRIBUTE_ID and COLLECT_DATE = max(a.COLLECT_DATE)) LATEST_VALUE
,max(COLLECT_DATE) COLLECT_DATE
from sms_day_report a
where year = #{year} and month =#{month} and day=#{day}
group by TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH, DAY