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