diff --git a/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml index 712aa7eee..70334cc77 100644 --- a/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml +++ b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml @@ -514,20 +514,21 @@ SELECT objId, expend FROM ( SELECT - objId, - meter_value - ISNULL( LAG ( meter_value, 1 ) OVER ( PARTITION BY monitor_id ORDER BY record_time ), 0 ) AS expend, - ROW_NUMBER ( ) OVER ( ORDER BY record_time ) AS row_num - FROM report_point_dnb - WHERE DATEPART( MINUTE, record_time ) = 0 - AND DATEPART( SECOND, record_time ) = 0 + a.objId, + (a.meter_value - ISNULL( LAG ( a.meter_value, 1 ) OVER ( PARTITION BY a.monitor_id ORDER BY a.record_time ), 0 )) * ISNULL(b.ct, 1) AS expend, + ROW_NUMBER ( ) OVER ( ORDER BY a.record_time ) AS row_num + FROM report_point_dnb a + LEFT JOIN base_monitor_info b ON a.monitor_id = b.monitor_id + WHERE DATEPART( MINUTE, a.record_time ) = 0 + AND DATEPART( SECOND, a.record_time ) = 0 - AND CONVERT ( VARCHAR, record_time, 23 ) >= #{params.beginDate} - AND CONVERT ( VARCHAR, record_time, 23 ) #{params.endDate} + AND CONVERT ( VARCHAR, a.record_time, 23 ) >= #{params.beginDate} + AND CONVERT ( VARCHAR, a.record_time, 23 ) #{params.endDate} - AND CONVERT ( VARCHAR, record_time, 23 ) >= CONVERT(varchar, DATEADD(day, -2, GETDATE()), 23) + AND CONVERT ( VARCHAR, a.record_time, 23 ) >= CONVERT(varchar, DATEADD(day, -2, GETDATE()), 23) - AND monitor_id = #{params.monitorId} + AND a.monitor_id = #{params.monitorId} ) n WHERE row_num != 1 ) b ON a.objid = b.objId