SELECT
e.index_id,
e.name as index_name,
e.code as index_code,
e.unit_id,
bm.time_type,
bm.date_time,
bm."value",
bm.time_code,
bm.actual_value,
benchmarking_range,
benchmarking_type
FROM
energy_index e
LEFT JOIN benchmarking_management bm ON bm.index_id = e.index_id
insert into benchmarking_management (index_id,
time_code,
time_type,
value,
actual_value,
date_time,
benchmarking_range,
benchmarking_type,
create_time)
select #{benchmarkingManagement.indexId},
#{benchmarkingManagement.timeCode},
#{benchmarkingManagement.timeType},
#{benchmarkingManagement.value,jdbcType = DOUBLE},
#{benchmarkingManagement.actualValue,jdbcType = DOUBLE},
#{benchmarkingManagement.dateTime},
#{benchmarkingManagement.benchmarkingRange},
#{benchmarkingManagement.benchmarkingType},
now()
on conflict
(index_id,time_code)
do update
set
value = #{benchmarkingManagement.value, jdbcType = DOUBLE},
actual_value = #{benchmarkingManagement.actualValue, jdbcType = DOUBLE},
benchmarking_range=#{benchmarkingManagement.benchmarkingRange},
benchmarking_type=#{benchmarkingManagement.benchmarkingType},
update_time = now();
insert into benchmarking_management
index_id,
time_type,
date_time,
value,
time_code,
create_time,
update_time,
actual_value,
benchmarking_range,
benchmarking_type,
#{indexId},
#{timeType},
#{dateTime},
#{value},
#{timeCode},
#{createTime},
#{updateTime},
#{actualValue},
#{benchmarkingRange},
#{benchmarkingType},
update benchmarking_management
time_type = #{timeType},
date_time = #{dateTime},
value = #{value},
time_code = #{timeCode},
create_time = #{createTime},
update_time = #{updateTime},
actual_value = #{actualValue},
benchmarking_range = #{benchmarkingRange},
benchmarking_type = #{benchmarkingType},
where index_id = #{indexId}
delete from benchmarking_management where index_id = #{indexId}
delete from benchmarking_management where index_id in
#{indexId}