ALTER PROCEDURE [dbo].[HJGL_sp_rpt_NDTReport] ( @ProjectId NVARCHAR(50) = null, @trustDate datetime = null ) AS /***************无损检测日报**********************/ SELECT NDTType.NDT_ID, Base_Project.ProjectCode AS ProjectCode,--施工号 Base_Project.ProjectName AS ProjectName,--项目名称 NDTType.NDT_Code,--检测方式 ISNULL(need_check_count.need_check_count,0) as need_check_count,--需检测焊口总数(合计) ISNULl(trust_count_current.trust_count_current,0) as trust_count_current,--当日委托焊口 ISNULL(trust_count_total.trust_count_total,0) as trust_count_total,--累计委托焊口 ISNULL(check_count_current.check_count_current,0) as check_count_current,--当日检测焊口 ISNULL(check_count.check_count,0) as check_count,--累计检测焊口数 ISNULL(total_check_Pass_count.total_check_Pass_count,0) as total_check_Pass_count,--累计合格焊口数 ISNULL(check_count_film.check_count_film,0) AS check_count_film,--累计检测片数 ISNULL(check_count_Pass_film.check_count_Pass_film,0) as check_count_Pass_film,--累计合格片数 CONVERT(nvarchar(10),CAST(CAST((CASE ISNULL(need_check_count.need_check_count,0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(check_count.check_count,0)/(1.0 * need_check_count.need_check_count) END) AS DECIMAL(19,3))*100 as DECIMAL(19,1)) )+'%' AS complated_check_rate, --完成检测比例(焊口数) 累计检测焊口数/需检测焊口总数 CONVERT(nvarchar(10),CAST(CAST((CASE ISNULL(check_count.check_count,0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(total_check_Pass_count.total_check_Pass_count,0)/(1.0 * check_count.check_count) END) AS DECIMAL(19,3))*100 as DECIMAL(19,1)) )+'%' AS check_onePass_rate,--检测一次合格率(焊口数) 累计合格焊口数/累计检测焊口数 (CASE WHEN ISNULL(check_count_film.check_count_film,0)>0 THEN CONVERT(nvarchar(10),ISNULL(check_count_Pass_film.check_count_Pass_film,0)/ISNULL(check_count_film.check_count_film,0)*1.0*100)+'%' ELSE '0%' END) AS check_onePass_film_rate,--检测一次合格率(片数) 累计合格片数/累计检测片数 (isnull(check_count.check_count,0) - isnull(total_check_Pass_count.total_check_Pass_count,0)) AS check_noPass_count,--累计检测不合格数(焊口数) 累计检测焊口数-累计合格焊口数 (isnull(check_count_film.check_count_film,0) - isnull(check_count_Pass_film,0)) as check_noPass_film_count,--累计检测不合格数(片数) 累计检测片数-累计合格片数 ISNULL(repair_current_film.repair_current_film,0) AS repair_current_film,--焊缝返修情况(片数)(当日完成) ISNULL(repair_total_film.repair_total_film,0) AS repair_total_film,--焊缝返修情况(片数)(累计完成) (ISNULl(check_count_film.check_count_film,0) - isnull(check_count_Pass_film.check_count_Pass_film,0))-ISNULL(repair_total_film.repair_total_film,0) as pending_repair_film, --焊缝返修情况(片数) 待返修 (累计检测不合格数(片数)- 焊缝返修情况(片数)(累计完成)) isnull(repair_current_count.repair_current_count,0) as repair_current_count,--焊缝返修情况(焊口数)当日完成 isnull(repair_total_count.repair_total_count,0) as repair_total_count, --焊缝返修情况(焊口数)累计完成 (isnull(check_count.check_count,0) - isnull(total_check_Pass_count.total_check_Pass_count,0))-isnull(repair_total_count.repair_total_count,0) as pending_repair_count --焊缝返修情况(焊口数)待返修 (累计检测不合格数(焊口)-焊缝返修情况(焊口数)累计完成) FROM HJGL_BS_NDTType AS NDTType LEFT JOIN Base_Project ON Base_Project.ProjectId=@ProjectId --需检测焊口总数 LEFT JOIN (SELECT COUNT(*) AS need_check_count,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID LEFT JOIN HJGL_PW_JointInfo ON HJGL_PW_JointInfo.JOT_ID = HJGL_CH_TrustItem.JOT_ID WHERE HJGL_CH_Trust.ProjectId=@ProjectId GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS need_check_count ON need_check_count.CH_NDTMethod = NDTType.NDT_ID --当日委托焊口 LEFT JOIN (SELECT COUNT(*) AS trust_count_current,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID LEFT JOIN HJGL_PW_JointInfo ON HJGL_PW_JointInfo.JOT_ID = HJGL_CH_TrustItem.JOT_ID WHERE HJGL_CH_Trust.ProjectId=@ProjectId AND CONVERT(varchar(10), HJGL_CH_Trust.CH_TrustDate,120)=@trustDate GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS trust_count_current ON trust_count_current.CH_NDTMethod = NDTType.NDT_ID --累计委托焊口 LEFT JOIN (SELECT COUNT(*) AS trust_count_total,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID LEFT JOIN HJGL_PW_JointInfo ON HJGL_PW_JointInfo.JOT_ID = HJGL_CH_TrustItem.JOT_ID WHERE HJGL_CH_Trust.ProjectId=@ProjectId GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS trust_count_total ON trust_count_total.CH_NDTMethod = NDTType.NDT_ID LEFT JOIN (SELECT COUNT(*) AS check_count_current,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID LEFT JOIN HJGL_PW_JointInfo ON HJGL_PW_JointInfo.JOT_ID = HJGL_CH_TrustItem.JOT_ID WHERE HJGL_CH_TrustItem.States!='1' AND HJGL_CH_Trust.ProjectId=@ProjectId AND CONVERT(varchar(10), HJGL_CH_Trust.CH_TrustDate,120)=@trustDate GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS check_count_current ON check_count_current.CH_NDTMethod = NDTType.NDT_ID --累计检测焊口数 LEFT JOIN (SELECT COUNT(*) AS check_count,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID LEFT JOIN HJGL_PW_JointInfo ON HJGL_PW_JointInfo.JOT_ID = HJGL_CH_TrustItem.JOT_ID WHERE HJGL_CH_TrustItem.States!='1' AND HJGL_CH_Trust.ProjectId=@ProjectId GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS check_count ON check_count.CH_NDTMethod = NDTType.NDT_ID ----累计检测片数 LEFT JOIN (SELECT COUNT(*) AS check_count_film,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_BO_QualityRating LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_BO_QualityRating.CH_TrustItemID LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID WHERE HJGL_CH_Trust.ProjectId=@ProjectId GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS check_count_film ON check_count_film.CH_NDTMethod = NDTType.NDT_ID --累计合格焊口数 LEFT JOIN (SELECT COUNT(*) AS total_check_Pass_count,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_CH_TrustItem LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID WHERE HJGL_CH_Trust.ProjectId=@ProjectId AND HJGL_CH_TrustItem.States='2' and HJGL_CH_Trust.CH_TrustType='1' GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS total_check_Pass_count ON total_check_Pass_count.CH_NDTMethod = NDTType.NDT_ID --累计合格片数 LEFT JOIN (SELECT COUNT(*) AS check_count_Pass_film,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_BO_QualityRating LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_BO_QualityRating.CH_TrustItemID LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID WHERE HJGL_BO_QualityRating.IsPass='合格' and HJGL_CH_Trust.ProjectId=@ProjectId GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS check_count_Pass_film ON check_count_Pass_film.CH_NDTMethod = NDTType.NDT_ID --焊缝返修情况(片数)(当日完成) LEFT JOIN (SELECT COUNT(*) AS repair_current_film,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_BO_QualityRatingRepair LEFT JOIN HJGL_CH_RepairItem ON HJGL_CH_RepairItem.CH_RepairItemId = HJGL_BO_QualityRatingRepair.CH_RepairItemId LEFT JOIN HJGL_CH_Repair ON HJGL_CH_Repair.CH_RepairID = HJGL_CH_RepairItem.CH_RepairID LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_CH_Repair.TrustItemID LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID WHERE HJGL_CH_Trust.ProjectId=@ProjectId AND CONVERT(varchar(10),HJGL_CH_Repair.RepairTrustDate,120)=@trustDate GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS repair_current_film ON repair_current_film.CH_NDTMethod = NDTType.NDT_ID --焊缝返修情况(片数)(累计完成) LEFT JOIN (SELECT COUNT(*) AS repair_total_film,HJGL_CH_Trust.CH_NDTMethod FROM HJGL_BO_QualityRatingRepair LEFT JOIN HJGL_CH_RepairItem ON HJGL_CH_RepairItem.CH_RepairItemId = HJGL_BO_QualityRatingRepair.CH_RepairItemId LEFT JOIN HJGL_CH_Repair ON HJGL_CH_Repair.CH_RepairID = HJGL_CH_RepairItem.CH_RepairID LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_CH_Repair.TrustItemID LEFT JOIN HJGL_CH_Trust ON HJGL_CH_Trust.CH_TrustID = HJGL_CH_TrustItem.CH_TrustID WHERE HJGL_CH_Trust.ProjectId=@ProjectId GROUP BY HJGL_CH_Trust.CH_NDTMethod) AS repair_total_film ON repair_total_film.CH_NDTMethod = NDTType.NDT_ID --焊缝返修情况(焊口数) 当日完成 left join (select count(*) as repair_current_count,HJGL_CH_Repair.NDT_ID from HJGL_CH_RepairItem LEFT JOIN HJGL_CH_Repair ON HJGL_CH_Repair.CH_RepairID = HJGL_CH_RepairItem.CH_RepairID LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_CH_Repair.TrustItemID WHERE HJGL_CH_RepairItem.States='4' AND HJGL_CH_Repair.ProjectId=@ProjectId AND CONVERT(varchar(10),HJGL_CH_Repair.RepairTrustDate,120)=@trustDate GROUP BY HJGL_CH_Repair.NDT_ID) as repair_current_count on repair_current_count.NDT_ID =NDTType.NDT_ID --焊缝返修情况(焊口数) 累计完成 left join (select count(*) as repair_total_count,HJGL_CH_Repair.NDT_ID from HJGL_CH_RepairItem LEFT JOIN HJGL_CH_Repair ON HJGL_CH_Repair.CH_RepairID = HJGL_CH_RepairItem.CH_RepairID LEFT JOIN HJGL_CH_TrustItem ON HJGL_CH_TrustItem.CH_TrustItemID = HJGL_CH_Repair.TrustItemID WHERE HJGL_CH_RepairItem.States='4' AND HJGL_CH_Repair.ProjectId=@ProjectId GROUP BY HJGL_CH_Repair.NDT_ID) as repair_total_count on repair_total_count.NDT_ID =NDTType.NDT_ID GO