diff --git a/Service/Ammeter/EmeterEnergyChangeService.cs b/Service/Ammeter/EmeterEnergyChangeService.cs index 5df5a23..c794f96 100644 --- a/Service/Ammeter/EmeterEnergyChangeService.cs +++ b/Service/Ammeter/EmeterEnergyChangeService.cs @@ -45,9 +45,10 @@ public class EmeterEnergyChangeService : BaseServices SELECT d.`code`, d.`UploadTime`, - CASE - WHEN d.`Count` = 1 THEN d.`MaxValue` - d.`PreviousMaxValue` - ELSE d.`MaxValue` - d.`MinValue` + CASE + WHEN d.`Count` > 1 THEN d.`MaxValue` - d.`MinValue` + WHEN d.`Count` = 1 AND d.`PreviousMaxValue` IS NOT NULL THEN d.`MaxValue` - d.`PreviousMaxValue` + ELSE 0 END AS `DailyValue` FROM previous_day_max d @@ -65,6 +66,7 @@ ORDER BY `UploadTime`; + "; List emeterEnergies = await _emeterEnergyChangeRep.SqlQueryable(sql); diff --git a/Service/Ammeter/EmeterEnergyService.cs b/Service/Ammeter/EmeterEnergyService.cs index 31b043b..134fbfa 100644 --- a/Service/Ammeter/EmeterEnergyService.cs +++ b/Service/Ammeter/EmeterEnergyService.cs @@ -50,8 +50,9 @@ public class EmeterEnergyService : BaseServices d.`code`, d.`UploadTime`, CASE - WHEN d.`Count` = 1 THEN d.`MaxValue` - d.`PreviousMaxValue` - ELSE d.`MaxValue` - d.`MinValue` + WHEN d.`Count` > 1 THEN d.`MaxValue` - d.`MinValue` + WHEN d.`Count` = 1 AND d.`PreviousMaxValue` IS NOT NULL THEN d.`MaxValue` - d.`PreviousMaxValue` + ELSE 0 END AS `DailyValue` FROM previous_day_max d @@ -69,6 +70,7 @@ ORDER BY `UploadTime`; + "; List emeterEnergies = await this.BaseDal.SqlQueryable(sql); return emeterEnergies;