ALTER PROC [dbo].[HJGL_sp_HeatTreatmentEstimateRecord] @projectId NVARCHAR(50) = NULL, @type NVARCHAR(50) = NULL AS /*管线综合分析*/ SELECT isoinfo.ProjectId ,isoinfo.ISO_ID ,isoinfo.ISO_IsoNo ,ndtRate.NDTR_Name --对接焊缝检测比例 ,ISNULL(total_jot.total_jot,0) AS total_jot --焊口总数量 ,ISNULL(total_bw1jot.total_bw1jot,0) AS total_bw1jot --对接焊口数量 ,ISNULL(total_hotjot.total_hotjot ,0) AS total_hotjot --预计热处理焊口数量 ,ISNULL(total_OKhotjot.total_OKhotjot ,0) AS total_OKhotjot --热处理合格焊口数量 ,ISNULL(total_Trusthotjot.total_Trusthotjot ,0) AS total_Trusthotjot --已委托热处理焊口数量 ,ISNULL(total_Inputhotjot.total_Inputhotjot ,0) AS total_Inputhotjot --已录入热处理焊口数量 ,ISNULL(total_hotjot.total_hotjot ,0)-ISNULL(total_OKhotjot.total_OKhotjot ,0) AS total_NotOKhotjot --热处理未合格焊口数量 ,CEILING(ISNULL(total_bw1jot.total_bw1jot,0)*ndtRate.NDTR_Rate/100.00) AS maybe_bw1jot --,CASE WHEN --CAST(total_jot.total_jot AS DECIMAL(9,2))*ndtRate.NDTR_Rate/100>CAST((ISNULL(total_jot.total_jot,0)*ndtRate.NDTR_Rate/100) AS INT) -- THEN CAST((ISNULL(total_jot.total_jot,0)*ndtRate.NDTR_Rate/100) AS INT)+1 --ELSE CAST((ISNULL(total_jot.total_jot,0)*ndtRate.NDTR_Rate/100) AS INT) END -- AS maybe_bw1jot --预计检测接头数量比例 FROM HJGL_PW_IsoInfo AS isoinfo --对接焊缝检测比例 LEFT JOIN HJGL_BS_WeldControl AS weldControl ON weldControl.ISC_ID=isoinfo.ISC_ID AND weldControl.ExecStandardId=isoinfo.ISO_Executive LEFT JOIN HJGL_BS_NDTRate AS ndtRate ON ndtRate.NDTR_ID=weldControl.Joty_Rate ----焊口总数量 LEFT JOIN (SELECT COUNT(*) AS total_jot ,HJGL_PW_JointInfo.ISO_ID FROM HJGL_PW_JointInfo GROUP BY HJGL_PW_JointInfo.ISO_ID) AS total_jot ON total_jot.ISO_ID =isoinfo.ISO_ID ----对接焊口数量 LEFT JOIN (SELECT COUNT(*) AS total_bw1jot ,jointinfo.ISO_ID FROM HJGL_PW_JointInfo AS jointinfo WHERE jointinfo.JOTY_ID='1e2704c8-b088-4389-9adf-9d89ceffe85b' GROUP BY jointinfo.ISO_ID) AS total_bw1jot ON total_bw1jot.ISO_ID =isoinfo.ISO_ID --预计热处理焊口数量 LEFT JOIN (SELECT COUNT(*) AS total_hotjot ,jointinfo.ISO_ID FROM HJGL_PW_JointInfo AS jointinfo WHERE jointinfo.IS_Proess='1' and jointinfo.ProessTypes like '%'+@type+'%' GROUP BY jointinfo.ISO_ID) AS total_hotjot ON total_hotjot.ISO_ID =isoinfo.ISO_ID --热处理合格焊口数量 LEFT JOIN (SELECT COUNT(*) AS total_OKhotjot ,jointinfo.ISO_ID FROM HJGL_PW_JointInfo AS jointinfo WHERE jointinfo.IS_Proess='1' and jointinfo.ProessTypes like '%'+@type+'%' and ((select count(*) from HJGL_CH_HotProessResult r where r.JOT_ID=jointinfo.JOT_ID and r.ProessTypes=@type and r.IsOK=1)>0 or (select count(*) from HJGL_CH_HardTestResult r where r.JOT_ID=jointinfo.JOT_ID and r.IsOK=1)>0) GROUP BY jointinfo.ISO_ID) AS total_OKhotjot ON total_OKhotjot.ISO_ID =isoinfo.ISO_ID --已委托热处理焊口数量 LEFT JOIN (SELECT COUNT(*) AS total_Trusthotjot ,jointinfo.ISO_ID FROM HJGL_PW_JointInfo AS jointinfo WHERE jointinfo.IS_Proess='1' and jointinfo.ProessTypes like '%'+@type+'%' and (select count(*) from HJGL_CH_HotProessTrustItem r where r.JOT_ID=jointinfo.JOT_ID and r.ProessTypes=@type)>0 GROUP BY jointinfo.ISO_ID) AS total_Trusthotjot ON total_Trusthotjot.ISO_ID =isoinfo.ISO_ID --已录入热处理焊口数量 LEFT JOIN (SELECT COUNT(*) AS total_Inputhotjot ,jointinfo.ISO_ID FROM HJGL_PW_JointInfo AS jointinfo WHERE jointinfo.IS_Proess='1' and jointinfo.ProessTypes like '%'+@type+'%' and (select count(*) from HJGL_HotProessItem r where r.JOT_ID=jointinfo.JOT_ID and r.ProessTypes=@type and r.RecordChartNo is not null and r.RecordChartNo!='')>0 GROUP BY jointinfo.ISO_ID) AS total_Inputhotjot ON total_Inputhotjot.ISO_ID =isoinfo.ISO_ID WHERE (isoinfo.ProjectId = @projectId OR @projectId IS NULL) ORDER BY isoinfo.ISO_IsoNo GO