select distinct p.id,p.name, p.code,p.client,p.province,p.city,p.district,p.business,p.invest,p.address,p.agency_id, p.actual_location,p.location,p.estimate_type,p.filing_date, p.credit_code,p.report_progress,p.phase,p.state,p.introduction,p.is_review,p.del_flag,p.create_by,p.create_time, p.update_by,p.update_time,p.remark,d1.label as business_name,d2.label as estimate_type_name,e.leader_id,u.name as leader_name,e.link_phone, c.id as contract_id,c.contract_money,c.actual_contract_money,a.name as agency_name, (select count(*) from ass_project_material m where m.project_id=p.id and m.file_id is not null) as material_cnt from ass_project p left join ass_estimate_task e on e.project_id=p.id left join sys_user u on u.id=e.leader_id left join sys_dict_data d1 on d1.id=p.business left join sys_dict_data d2 on d2.id=p.estimate_type left join ass_contract c on c.project_id=p.id left join sys_agency a on a.id=p.agency_id