| | |
| | | </update> |
| | | |
| | | <select id="hollowIsAll" resultMap="baseMap"> |
| | | WITH sum_flow_layer_count AS ( |
| | | SELECT |
| | | flow_card_id, |
| | | layer, |
| | | min( films_id ) AS films_id, |
| | | count(*) AS sum_count |
| | | FROM |
| | | hollow_glass_relation_info |
| | | GROUP BY |
| | | flow_card_id, |
| | | layer |
| | | ), |
| | | real_flow_layer_count AS ( |
| | | SELECT |
| | | flow_card_id, |
| | | layer, |
| | | count(*) AS real_count |
| | | FROM |
| | | hollow_glass_relation_info |
| | | WHERE |
| | | tempering_layout_id IS NOT NULL |
| | | AND tempering_feed_sequence IS NOT NULL |
| | | GROUP BY |
| | | flow_card_id, |
| | | layer |
| | | ), |
| | | damage_flow_layer_count AS ( SELECT process_id AS flow_card_id, technology_number AS layer, count(*) |
| | | damage_count FROM damage GROUP BY process_id, technology_number ), |
| | | WITH sum_flow_layer_count AS ( SELECT flow_card_id, layer, min( films_id ) AS films_id, count(*) AS sum_count FROM hollow_glass_relation_info GROUP BY flow_card_id, layer ), |
| | | real_flow_layer_count AS ( SELECT flow_card_id, layer, count(*) AS real_count FROM hollow_glass_relation_info WHERE tempering_layout_id IS NOT NULL AND tempering_feed_sequence IS NOT NULL GROUP BY flow_card_id, layer ), |
| | | damage_flow_layer_count AS ( SELECT process_id AS flow_card_id, technology_number AS layer, count(*) as damage_count FROM damage GROUP BY process_id, technology_number ) |
| | | , |
| | | lack_flow_layer_count AS ( |
| | | SELECT |
| | | t.flow_card_id, |
| | | t.layer, |
| | | ( sum_count - real_count - damage_count ) AS lack_count |
| | | ifnull((sum_count - real_count - ifnull(damage_count,0)),0) AS lack_count |
| | | FROM |
| | | sum_flow_layer_count t |
| | | INNER JOIN real_flow_layer_count t1 ON t.flow_card_id = t1.flow_card_id |
| | | left JOIN real_flow_layer_count t1 ON t.flow_card_id = t1.flow_card_id |
| | | AND t.layer = t1.layer |
| | | INNER JOIN damage_flow_layer_count t2 ON t1.flow_card_id = t2.flow_card_id |
| | | left JOIN damage_flow_layer_count t2 ON t1.flow_card_id = t2.flow_card_id |
| | | AND t1.layer = t2.layer |
| | | ), |
| | | layer_one AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 1 AND tempering_layout_id IS NOT NULL AND |
| | | tempering_feed_sequence IS NOT NULL ), |
| | | layer_two AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 2 AND tempering_layout_id IS NOT NULL AND |
| | | tempering_feed_sequence IS NOT NULL ), |
| | | layer_three AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 3 AND tempering_layout_id IS NOT NULL |
| | | AND tempering_feed_sequence IS NOT NULL ) |
| | | layer_one AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 1 AND tempering_layout_id IS NOT NULL AND tempering_feed_sequence IS NOT NULL ), |
| | | layer_two AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 2 AND tempering_layout_id IS NOT NULL AND tempering_feed_sequence IS NOT NULL ), |
| | | layer_three AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 3 AND tempering_layout_id IS NOT NULL AND tempering_feed_sequence IS NOT NULL ) |
| | | , |
| | | pair_flow_layer_count AS ( |
| | | SELECT |
| | |
| | | </if> |
| | | GROUP BY |
| | | t.flow_card_id |
| | | ) |
| | | ,result_flow_layer_count AS ( |
| | | ), |
| | | result_flow_layer_count AS ( |
| | | SELECT |
| | | t.flow_card_id, |
| | | t.layer, |
| | | t.films_id, |
| | | sum_count, |
| | | t3.pair_count, |
| | | IFNULL(real_count,0) as real_count, |
| | | IFNULL(damage_count,0) as damage_count, |
| | | IFNULL(lack_count,0) as lack_count |
| | | IFNULL( t3.pair_count, 0 ) AS pair_count, |
| | | IFNULL( real_count, 0 ) AS real_count, |
| | | IFNULL( damage_count, 0 ) AS damage_count, |
| | | IFNULL( lack_count, 0 ) AS lack_count |
| | | FROM |
| | | sum_flow_layer_count t |
| | | left JOIN real_flow_layer_count t1 ON t.flow_card_id = t1.flow_card_id |
| | | LEFT JOIN real_flow_layer_count t1 ON t.flow_card_id = t1.flow_card_id |
| | | AND t.layer = t1.layer |
| | | left JOIN lack_flow_layer_count t2 ON t.flow_card_id = t2.flow_card_id |
| | | LEFT JOIN lack_flow_layer_count t2 ON t.flow_card_id = t2.flow_card_id |
| | | AND t.layer = t2.layer |
| | | left JOIN pair_flow_layer_count t3 ON t.flow_card_id = t3.flow_card_id |
| | | left JOIN damage_flow_layer_count t4 ON t.flow_card_id = t4.flow_card_id |
| | | LEFT JOIN pair_flow_layer_count t3 ON t.flow_card_id = t3.flow_card_id |
| | | LEFT JOIN damage_flow_layer_count t4 ON t.flow_card_id = t4.flow_card_id |
| | | AND t.layer = t4.layer |
| | | ) SELECT |
| | | * |