From b8470f5e90d0aed22bf2c4bf9f5d2a13cd60b15f Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 30 十二月 2024 14:03:41 +0800
Subject: [PATCH] 1、统计模块实现农户日用水量纵转横转存,月、年用水量统计; 2、临时模块农户日用水量纵转横转存,月、年用水量统计;

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml |  535 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 491 insertions(+), 44 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
index ff1f3fa..7ddc8ab 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmIntakeAmountDayMapper.xml
@@ -247,187 +247,187 @@
         SELECT inta.id                                 AS intakeId,
                inta.name                               AS intakeNum,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 1), 0)  AS amount1,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 2), 0)  AS amount2,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 3), 0)  AS amount3,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 4), 0)  AS amount4,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 5), 0)  AS amount5,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 6), 0)  AS amount6,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 7), 0)  AS amount7,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 8), 0)  AS amount8,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 9), 0)  AS amount9,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 10), 0) AS amount10,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 11), 0) AS amount11,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 12), 0) AS amount12,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 13), 0) AS amount13,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 14), 0) AS amount14,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 15), 0) AS amount15,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 16), 0) AS amount16,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 17), 0) AS amount17,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 18), 0) AS amount18,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 19), 0) AS amount19,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 20), 0) AS amount20,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 21), 0) AS amount21,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 22), 0) AS amount22,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 23), 0) AS amount23,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 24), 0) AS amount24,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 25), 0) AS amount25,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 26), 0) AS amount26,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 27), 0) AS amount27,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 28), 0) AS amount28,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 29), 0) AS amount29,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
                          AND DAY(intaDay.dt) = 30), 0) AS amount30,
                IFNULL((SELECT IFNULL(amount, 0)
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = #{month}
@@ -460,77 +460,77 @@
     </select>
 
     <!--缁熻鎸囧畾骞翠唤鍚勬湀鐢ㄦ按閲�-->
-    <select id="getMonthIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoMonthIntakeAmount">
+    <select id="getMonthIntakeAmount" resultType="com.dy.pipIrrGlobal.voSt.VoMonthAmount">
         SELECT inta.id                                  AS intakeId,
                inta.name                                AS intakeNum,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 1
                        GROUP BY(intaDay.intake_id)), 0) AS month1,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 2
                        GROUP BY(intaDay.intake_id)), 0) AS month2,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 3
                        GROUP BY(intaDay.intake_id)), 0) AS month3,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 4
                        GROUP BY(intaDay.intake_id)), 0) AS month4,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 5
                        GROUP BY(intaDay.intake_id)), 0) AS month5,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 6
                        GROUP BY(intaDay.intake_id)), 0) AS month6,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 7
                        GROUP BY(intaDay.intake_id)), 0) AS month7,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 8
                        GROUP BY(intaDay.intake_id)), 0) AS month8,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 9
                        GROUP BY(intaDay.intake_id)), 0) AS month9,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 10
                        GROUP BY(intaDay.intake_id)), 0) AS month10,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 11
                        GROUP BY(intaDay.intake_id)), 0) AS month11,
                IFNULL((SELECT SUM(amount) AS amount
-                       FROM rm_intake_amount_day intaDay
+                       FROM rm_intake_amount_day_last intaDay
                        WHERE intaDay.intake_id = inta.id
                          AND YEAR(intaDay.dt) = #{year}
                          AND MONTH(intaDay.dt) = 12
@@ -549,4 +549,451 @@
             </if>
         </trim>
     </select>
+
+
+
+
+    <!-- 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛岀粺璁″彇姘村彛鏁伴噺 -->
+    <select id="selectIntakeCount4AmountDay" resultType="java.lang.Long">
+        SELECT COUNT(*)
+        FROM pr_intake tb
+        <where>
+            AND tb.deleted != 1
+            <if test="intakeNum != null and intakeNum != ''">
+                AND tb.name = #{intakeNum}
+            </if>
+        </where>
+    </select>
+
+    <!-- 涓烘煡璇㈢粺璁″彇姘村彛鏃ユ紡鎹熼噺锛屾煡璇竴椤靛彇姘村彛ID -->
+    <select id="selectIntakes4AmountDay" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+        SELECT id    as intakeId,
+               name  as intakeNum,
+               lat   as intakeLat,
+               lng   as intakeLng
+        FROM pr_intake
+        <where>
+            AND deleted != 1
+            <if test="intakeNum != null and intakeNum != ''">
+                AND name = #{intakeNum}
+            </if>
+        </where>
+        order by id DESC
+        <trim prefix="limit " >
+            <if test="start != null and count != null">
+                #{start, javaType=Integer, jdbcType=INTEGER}, #{count, javaType=Integer, jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+    <sql id="selectIntakeAmountOfDay_with">
+        SELECT intaId.intakeId   AS intakeId,
+               riad.dt           AS dt,
+               riad.amount       AS amount
+        FROM JSON_TABLE(
+            #{intakesJson},
+            '$[*]' COLUMNS (
+                intakeId BIGINT PATH '$.intakeId'
+            )
+        ) intaId
+        INNER JOIN rm_intake_amount_day riad ON riad.intake_id = intaId.intakeId
+        <where>
+            <if test="startDt != null ">
+                AND riad.dt <![CDATA[>=]]> #{startDt, javaType=DATE, jdbcType=DATE}
+            </if>
+            <if test="endDt != null ">
+                AND riad.dt <![CDATA[<=]]> #{endDt, javaType=DATE, jdbcType=DATE}
+            </if>
+        </where>
+    </sql>
+
+  <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(1鍙峰埌5鍙�)-->
+  <select id="selectIntakeAmountOfDay01_05" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb01.amount       AS amount1,
+           tb02.amount       AS amount2,
+           tb03.amount       AS amount3,
+           tb04.amount       AS amount4,
+           tb05.amount       AS amount5
+    FROM JSON_TABLE(
+      #{intakesJson},
+      '$[*]' COLUMNS (
+        intakeId BIGINT PATH '$.intakeId',
+        intakeNum VARCHAR(100) PATH '$.intakeNum',
+        intakeLng DOUBLE PATH '$.intakeLng',
+        intakeLat DOUBLE PATH '$.intakeLat'
+      )
+    ) inta
+    LEFT JOIN (
+       SELECT tb.intakeId AS intakeId,
+              tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+              AND MONTH(tb.dt) = #{month}
+              AND DAY(tb.dt) = 1
+    ) as tb01 on tb01.intakeId = inta.intakeId
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 2
+    ) as tb02 on tb02.intakeId = inta.intakeId
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 3
+    ) as tb03 on tb03.intakeId = inta.intakeId
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 4
+    ) as tb04 on tb04.intakeId = inta.intakeId
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 5
+    ) as tb05 on tb05.intakeId = inta.intakeId
+  </select>
+
+
+  <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(6鍙峰埌10鍙�)-->
+  <select id="selectIntakeAmountOfDay06_10" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb06.amount       AS amount6,
+           tb07.amount       AS amount7,
+           tb08.amount       AS amount8,
+           tb09.amount       AS amount9,
+           tb10.amount       AS amount10
+    FROM JSON_TABLE(
+      #{intakesJson},
+      '$[*]' COLUMNS (
+        intakeId BIGINT PATH '$.intakeId',
+        intakeNum VARCHAR(100) PATH '$.intakeNum',
+        intakeLng DOUBLE PATH '$.intakeLng',
+        intakeLat DOUBLE PATH '$.intakeLat'
+      )
+    ) inta
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 6
+    ) as tb06 on tb06.intakeId = inta.intakeId
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 7
+    ) as tb07 on tb07.intakeId = inta.intakeId
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 8
+    ) as tb08 on tb08.intakeId = inta.intakeId
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 9
+    ) as tb09 on tb09.intakeId = inta.intakeId
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 10
+    ) as tb10 on tb10.intakeId = inta.intakeId
+  </select>
+
+  <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(11鍙峰埌15鍙�)-->
+  <select id="selectIntakeAmountOfDay11_15" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb11.amount       AS amount11,
+           tb12.amount       AS amount12,
+           tb13.amount       AS amount13,
+           tb14.amount       AS amount14,
+           tb15.amount       AS amount15
+    FROM JSON_TABLE(
+      #{intakesJson},
+      '$[*]' COLUMNS (
+        intakeId BIGINT PATH '$.intakeId',
+        intakeNum VARCHAR(100) PATH '$.intakeNum',
+        intakeLng DOUBLE PATH '$.intakeLng',
+        intakeLat DOUBLE PATH '$.intakeLat'
+      )
+    ) inta
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 11
+    ) as tb11 on tb11.intakeId = inta.intakeId
+    LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 12
+    ) as tb12 on tb12.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 13
+    ) as tb13 on tb13.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 14
+    ) as tb14 on tb14.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 15
+    ) as tb15 on tb15.intakeId = inta.intakeId
+  </select>
+
+  <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(20鍙峰埌16鍙�)-->
+  <select id="selectIntakeAmountOfDay16_20" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb16.amount       AS amount16,
+           tb17.amount       AS amount17,
+           tb18.amount       AS amount18,
+           tb19.amount       AS amount19,
+           tb20.amount       AS amount20
+    FROM JSON_TABLE(
+      #{intakesJson},
+      '$[*]' COLUMNS (
+        intakeId BIGINT PATH '$.intakeId',
+        intakeNum VARCHAR(100) PATH '$.intakeNum',
+        intakeLng DOUBLE PATH '$.intakeLng',
+        intakeLat DOUBLE PATH '$.intakeLat'
+      )
+    ) inta
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 16
+    ) as tb16 on tb16.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 17
+    ) as tb17 on tb17.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 18
+    ) as tb18 on tb18.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 19
+    ) as tb19 on tb19.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 20
+    ) as tb20 on tb20.intakeId = inta.intakeId
+  </select>
+
+  <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(21鍙峰埌25鍙�)-->
+  <select id="selectIntakeAmountOfDay21_25" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb21.amount       AS amount21,
+           tb22.amount       AS amount22,
+           tb23.amount       AS amount23,
+           tb24.amount       AS amount24,
+           tb25.amount       AS amount25
+    FROM JSON_TABLE(
+      #{intakesJson},
+      '$[*]' COLUMNS (
+        intakeId BIGINT PATH '$.intakeId',
+        intakeNum VARCHAR(100) PATH '$.intakeNum',
+        intakeLng DOUBLE PATH '$.intakeLng',
+        intakeLat DOUBLE PATH '$.intakeLat'
+      )
+    ) inta
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 21
+    ) as tb21 on tb21.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 22
+    ) as tb22 on tb22.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 23
+    ) as tb23 on tb23.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 24
+    ) as tb24 on tb24.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 25
+    ) as tb25 on tb25.intakeId = inta.intakeId
+  </select>
+
+  <!--缁熻鎸囧畾鏈堜唤鍚勫ぉ鍙栨按閲�(26鍙峰埌31鍙�)-->
+  <select id="selectIntakeAmountOfDay26_31" resultType="com.dy.pipIrrGlobal.voSt.VoDayIntakeAmount">
+    WITH intakeAmountDay AS (<include refid="selectIntakeAmountOfDay_with"/>)
+    SELECT inta.intakeId     AS intakeId,
+           inta.intakeNum    AS intakeNum,
+           inta.intakeLng    AS intakeLng,
+           inta.intakeLat    AS intakeLat,
+           tb26.amount       AS amount26,
+           tb27.amount       AS amount27,
+           tb28.amount       AS amount28,
+           tb29.amount       AS amount29,
+           tb30.amount       AS amount30,
+           tb31.amount       AS amount31
+    FROM JSON_TABLE(
+      #{intakesJson},
+      '$[*]' COLUMNS (
+        intakeId BIGINT PATH '$.intakeId',
+        intakeNum VARCHAR(100) PATH '$.intakeNum',
+        intakeLng DOUBLE PATH '$.intakeLng',
+        intakeLat DOUBLE PATH '$.intakeLat'
+      )
+    ) inta
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 26
+    ) as tb26 on tb26.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 27
+    ) as tb27 on tb27.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 28
+    ) as tb28 on tb28.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 29
+    ) as tb29 on tb29.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 30
+    ) as tb30 on tb30.intakeId = inta.intakeId
+   LEFT JOIN (
+        SELECT tb.intakeId AS intakeId,
+               tb.amount   AS amount
+        FROM intakeAmountDay AS tb
+        WHERE YEAR(tb.dt) = #{year}
+        AND MONTH(tb.dt) = #{month}
+        AND DAY(tb.dt) = 31
+    ) as tb31 on tb31.intakeId = inta.intakeId
+  </select>
+
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0