Browse Source

微分计算投药量值,day

Davidliu 2 days ago
parent
commit
c364913006
1 changed files with 20 additions and 6 deletions
  1. 20 6
      src/main/resources/mapper/TXlhtAddRecordMapper.xml

+ 20 - 6
src/main/resources/mapper/TXlhtAddRecordMapper.xml

@@ -209,6 +209,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         CAST(t.create_time AS DATE) AS create_time,
         SUM(t.instant_one_amount) AS instant_one_amount,
         SUM(t.instant_two_amount) AS instant_two_amount,
+        SUM(t.calculus_one_amount) AS calculus_one_amount,
+        SUM(t.calculus_two_amount) AS calculus_two_amount,
         SUM(t.one_amount) AS one_amount,
         SUM(t.two_amount) AS two_amount,
         SUM(t.tmp_one_amount) AS tmp_one_amount,
@@ -221,6 +223,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         rec_hour.hour_time AS create_time,
         sec_hour.instant_one_amount,
         sec_hour.instant_two_amount,
+        sec_hour.calculus_one_amount,
+        sec_hour.calculus_two_amount,
         rec_hour.one_amount,
         rec_hour.two_amount,
         rec_hour.tmp_one_amount,
@@ -245,15 +249,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="timeEnd != null  and timeEnd != ''"> and DATEADD(HOUR, DATEDIFF(HOUR, 0, create_time), 0) &lt;= #{timeEnd}</if>
         </where>
         GROUP BY
-        DATEADD(HOUR, DATEDIFF(HOUR, 0, create_time), 0)
-        ) AS rec_hour
+        DATEADD(HOUR, DATEDIFF(HOUR, 0, create_time), 0)) AS rec_hour
         LEFT JOIN (
         SELECT
         DATEADD(HOUR, DATEDIFF(HOUR, 0, create_time), 0) AS hour_time,
         AVG(one_amount) AS instant_one_amount,
-        AVG(two_amount) AS instant_two_amount
+        AVG(two_amount) AS instant_two_amount,
+        AVG(calculus_one_amount) AS calculus_one_amount,
+        AVG(calculus_two_amount) AS calculus_two_amount
+        FROM
+        (
+        SELECT
+        a.ID,
+        a.one_amount,
+        a.two_amount,
+        a.create_time,
+        ((a.one_amount + b.one_amount) / 2.0)  AS calculus_one_amount,
+        ((a.two_amount + b.two_amount) / 2.0)  AS calculus_two_amount
         FROM
-        t_xlht_add_record_sec
+        t_xlht_add_record_sec a
+        LEFT JOIN t_xlht_add_record_sec b ON b.create_time = (SELECT MAX(create_time) FROM t_xlht_add_record_sec WHERE create_time < a.create_time)) AS sec
         <where>
             1 = 1
             <if test="timeBegin != null  and timeBegin != ''"> and DATEADD(HOUR, DATEDIFF(HOUR, 0, create_time), 0) &gt;= #{timeBegin}</if>
@@ -261,8 +276,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         GROUP BY
         DATEADD(HOUR, DATEDIFF(HOUR, 0, create_time), 0)
-        ) AS sec_hour
-        ON sec_hour.hour_time = rec_hour.hour_time
+        ) AS sec_hour ON sec_hour.hour_time = rec_hour.hour_time
         ) t
         GROUP BY
         CAST(t.create_time AS DATE)