| | |
| | | t1.tempering_feed_sequence -1 |
| | | )select * from result limit 1 |
| | | </select> |
| | | <select id="queryTemperingGlassCountSummary" resultMap="temperingGlassCount"> |
| | | with glass_info_temp as ( |
| | | select engineer_id, tempering_layout_id, count(*) as total_count |
| | | from glass_info |
| | | group by engineer_id, tempering_layout_id |
| | | ), |
| | | big_details_temp as ( |
| | | select engineer_id, tempering_layout_id, count(*) as real_count, films_id, thickness |
| | | from big_storage_cage_details |
| | | where state = 100 |
| | | <if test="isTempering == 0"> |
| | | and tempering_layout_id = 0 |
| | | </if> |
| | | <if test="isTempering == 1"> |
| | | and tempering_layout_id != 0 |
| | | </if> |
| | | |
| | | group by engineer_id, tempering_layout_id, films_id, thickness |
| | | ), |
| | | damage_temp as ( |
| | | select engineer_id, tempering_layout_id, count(*) as damage_count |
| | | from damage |
| | | where type in(8,9) and STATUS = 1 |
| | | group by engineer_id, tempering_layout_id |
| | | ), |
| | | result as ( |
| | | select t.engineer_id, |
| | | t.tempering_layout_id, |
| | | t.films_id, |
| | | t.thickness, |
| | | total_count, |
| | | real_count, |
| | | ifnull(damage_count, 0) as damage_count, |
| | | case when total_count - real_count - ifnull(damage_count, 0) < 0 then 0 else |
| | | total_count - real_count - ifnull(damage_count, 0) end as lack_count |
| | | from big_details_temp t |
| | | inner join glass_info_temp t1 on t.engineer_id = t1.engineer_id and |
| | | t.tempering_layout_id = t1.tempering_layout_id |
| | | left join damage_temp t2 |
| | | on t.engineer_id = t2.engineer_id and t.tempering_layout_id = t2.tempering_layout_id |
| | | ), |
| | | -- 二次汇总层 |
| | | secondary_summary as ( |
| | | select |
| | | engineer_id, |
| | | films_id, |
| | | thickness, |
| | | count(distinct tempering_layout_id) as total_count, -- 计算totalCount的累计数(去重计数) |
| | | sum(total_count) as real_count -- 计算realCount的总和 |
| | | from result |
| | | group by engineer_id, films_id, thickness |
| | | ) |
| | | select * |
| | | from secondary_summary |
| | | order by engineer_id, films_id, thickness |
| | | </select> |
| | | </mapper> |