SELECT DISTINCT p.id, p.create_time, p.create_id,IF( l.id IS NULL, p.`status`, IF ( l.flag = 2, 4, l.`status` ) ) `status`, l.id data_id, l.if_all_examined, p.project_code, CONCAT(IFNULL( p.project_name_start, "" ),p.project_name,IFNULL( p.project_name_end, "" )) project_name, p.project_type, p.investment_type, p.project_step, p.tbbm, p.zzj, p.xmfzr, p.main_content, p.construction_nature, p.project_lx, p.gnlb, p.type, p.flag,CASE WHEN p.STATUS = 6 THEN p.update_time ELSE "" END AS finishDate, p.fm_time, p.parent_id, p.examine_dept, p.if_child, p.child_num, p.if_tzfq, p.file_url, p.relation_project_code, p.construction_child_type, p.done_time FROM project p INNER JOIN project_build cl ON p.id = cl.project_id AND ( cl.`status` = '4' OR cl.flag = '2' ) LEFT JOIN project_jdys l ON p.id = l.project_id AND l.if_history = 0 INNER JOIN project_step s ON (( p.project_step = s.now_step AND p.project_type = s.project_type AND s.project_step = 18 ) OR l.id IS NOT NULL ) WHERE p.del_flag = 0 ANDIF ( p.project_step = 5, p.step_status = '4', 1 = 1 ) AND (( p.flag = 2 AND p.`status` IN ( 1, 2, 3, 4, 5 )) OR p.`status` = '4' ) AND p.if_child = '0' ORDER BY p.create_time DESC
UPDATE project pt INNER JOIN(SELECT count(*) num,pt.parent_id FROM project ptWHERE pt.parent_id in (SELECT id FROM project WHERE if_child = 0) GROUP BY pt.parent_id) pON pt.id = p.parent_idSET pt.child_num = p.num-1