CREATE PROC [dbo].[HJGL_sp_rpt_welderPerformanceSum] @unitcode VARCHAR(50) = NULL, @steel VARCHAR(50) = NULL, @WED_ID NVARCHAR(50) = NULL, @date1 DATETIME = NULL, @date2 DATETIME = NULL, @projectId NVARCHAR(500) = NULL, @installationId NVARCHAR(50)=NULL AS /*焊工业绩分析*/ SELECT NEWID() AS Id, -------------本期start CAST(ISNULL(total.totalSize,0) AS DECIMAL(19,2)) AS totalSize, --总寸径 ISNULL(total.totalJoint,0) AS totalJoint, --总焊口 ISNULL(JointNum1.JointNum1,0) AS JointNum1, --一次拍片焊口数 ISNULL(JointNum1.JointNum1,0)-ISNULL(JointNoPassNum1.JointNoPassNum1,0) AS JointPassNum1, --一次拍片合格焊口数 ISNULL(JointNoPassNum1.JointNoPassNum1,0) AS RepairJoint1, --一次返修焊口数 ISNULL(RepairJoint2.RepairJoint2,0) AS RepairJoint2, --二次返修焊口数 ISNULL(RepairJoint3.RepairJoint3,0) AS RepairJoint3, --三次返修焊口数 CAST((CASE ISNULL((ISNULL(JointNum1.JointNum1,0)-ISNULL(JointNoPassNum1.JointNoPassNum1,0)),0) WHEN 0 THEN 0 ELSE (CASE(ISNULL(JointNum1.JointNum1,0)) WHEN 0 THEN 0 ELSE 1.0 * ISNULL((ISNULL(JointNum1.JointNum1,0)-ISNULL(JointNoPassNum1.JointNoPassNum1,0)),0)/(1.0 * JointNum1.JointNum1) END)END) AS DECIMAL(19,3)) AS JointPassRate , ---一次拍片焊口合格率 ISNULL(JointNum1.totalfilm,0) AS totalfilm, --一次拍片数 (ISNULL(JointNum1.totalfilm,0)- ISNULL(JointNoPassNum2.JointNoPassFilmNum2,0)) AS totalPassfilm, --一次拍片合格数 ISNULL(JointNoPassNum2.JointNoPassFilmNum2,0) AS repairFilm1, --一次返修片子数 ISNULL(RepairJoint2.repairFilm2,0) AS repairFilm2, --二次返修片子数 ISNULL(RepairJoint3.repairFilm3,0) AS repairFilm3, --三次返修片子数 CAST((CASE (ISNULL(JointNum1.totalfilm,0)- ISNULL(JointNoPassNum2.JointNoPassFilmNum2,0)) WHEN 0 THEN 0 ELSE (CASE(ISNULL(JointNum1.totalfilm,0)) WHEN 0 THEN 0 ELSE 1.0 * (ISNULL(JointNum1.totalfilm,0)- ISNULL(JointNoPassNum2.JointNoPassFilmNum2,0))/(1.0 * JointNum1.totalfilm) END) END) AS DECIMAL(19,3)) AS JointFilmPassRate ---一次拍片合格率 FROM --总达因值 --总焊口 (SELECT SUM(joint.JOT_Size) AS totalSize,COUNT(*) AS totalJoint ,joint.ProjectId,joint.InstallationId,iso.BSU_ID FROM HJGL_PW_JointInfo joint LEFT JOIN HJGL_PW_IsoInfo iso ON iso.ISO_ID = joint.ISO_ID LEFT JOIN HJGL_BO_WeldReportMain report ON joint.DReportID = report.DReportID WHERE joint.DReportID IS NOT NULL AND (report.JOT_WeldDate >= @date1 OR @date1 IS NULL) AND (report.JOT_WeldDate <= @date2 OR @date2 IS NULL) AND (joint.ste_id=@steel OR @steel IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,iso.BSU_ID) AS total --一次拍片焊口数 , 一次拍片总数,一次拍片合格总数 LEFT JOIN (SELECT COUNT(joint.JOT_ID) AS JointNum1, SUM(joint.RT_FilmNum) AS totalfilm, joint.ProjectId,joint.InstallationId,iso.BSU_ID FROM HJGL_PW_JointInfo joint LEFT JOIN HJGL_PW_IsoInfo iso ON iso.ISO_ID = joint.ISO_ID WHERE joint.PointType='点口' AND joint.RT_FilmNum IS NOT NULL and joint.RT_FilmNum>0 and (select COUNT(*) from dbo.HJGL_BO_QualityRating where JOT_ID=joint.JOT_ID and FilmNum is not null)>0 AND (joint.ste_id=@steel OR @steel IS NULL) AND joint.dreportid IS NOT NULL AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_BO_QualityRating WHERE JOT_ID=joint.JOT_ID)>= @date1 OR @date1 IS NULL) AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_BO_QualityRating WHERE JOT_ID=joint.JOT_ID)<= @date2 OR @date2 IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,iso.BSU_ID) AS JointNum1 ON JointNum1.ProjectId=total.ProjectId AND JointNum1.InstallationId = total.InstallationId AND JointNum1.BSU_ID = total.BSU_ID --一次拍片不合格焊口数 LEFT JOIN (SELECT COUNT(distinct joint.JOT_ID) AS JointNoPassNum1, joint.ProjectId,joint.InstallationId,iso.BSU_ID FROM HJGL_PW_JointInfo joint LEFT JOIN HJGL_PW_IsoInfo iso ON iso.ISO_ID = joint.ISO_ID left join dbo.HJGL_CH_RepairItemRecord rr on rr.JOT_ID=joint.JOT_ID WHERE joint.PointType='点口' AND (joint.RT1_RepairFilm IS NOT NULL or (select top 1 CH_TrustItemID from dbo.HJGL_CH_TrustItem ti where ti.JOT_ID=joint.JOT_ID and ti.States='4') is not null) AND (joint.ste_id=@steel OR @steel IS NULL) AND joint.dreportid IS NOT NULL and rr.RepairMark='R1' AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R1')>= @date1 OR @date1 IS NULL) AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R1')<= @date2 OR @date2 IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,iso.BSU_ID) AS JointNoPassNum1 ON JointNoPassNum1.ProjectId=total.ProjectId AND JointNoPassNum1.InstallationId = total.InstallationId AND JointNoPassNum1.BSU_ID = total.BSU_ID --一次拍片不合格拍片数 LEFT JOIN (SELECT count(rr.RepairItemRecordId) as JointNoPassFilmNum2, joint.ProjectId,joint.InstallationId,iso.BSU_ID FROM dbo.HJGL_CH_RepairItemRecord rr left join HJGL_PW_JointInfo joint on rr.JOT_ID=joint.JOT_ID LEFT JOIN HJGL_PW_IsoInfo iso ON iso.ISO_ID = joint.ISO_ID WHERE joint.PointType='点口' --AND (joint.RT1_RepairFilm IS NOT NULL or (select top 1 CH_TrustItemID from dbo.HJGL_CH_TrustItem ti where ti.JOT_ID=joint.JOT_ID and ti.States='4') is not null) AND (joint.ste_id=@steel OR @steel IS NULL) AND joint.dreportid IS NOT NULL and rr.RepairMark='R1' AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R1')>= @date1 OR @date1 IS NULL) AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R1')<= @date2 OR @date2 IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,iso.BSU_ID) AS JointNoPassNum2 ON JointNoPassNum2.ProjectId=total.ProjectId AND JointNoPassNum2.InstallationId = total.InstallationId AND JointNoPassNum2.BSU_ID = total.BSU_ID --二次返修拍片焊口数,二次返修拍片总数 LEFT JOIN (SELECT COUNT(joint.JOT_ID) AS RepairJoint2, SUM(ISNULL(joint.RT2_RepairFilmNum,0)) AS RepairFilm2, joint.ProjectId,joint.InstallationId,iso.BSU_ID FROM HJGL_PW_JointInfo joint LEFT JOIN HJGL_PW_IsoInfo iso ON iso.ISO_ID = joint.ISO_ID WHERE joint.PointType='点口' AND joint.RT2_RepairFilm IS NOT NULL AND (joint.ste_id=@steel OR @steel IS NULL) AND joint.dreportid IS NOT NULL AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R2')>= @date1 OR @date1 IS NULL) AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R2')<= @date2 OR @date2 IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,iso.BSU_ID) AS RepairJoint2 ON RepairJoint2.ProjectId=total.ProjectId AND RepairJoint2.InstallationId = total.InstallationId AND RepairJoint2.BSU_ID = total.BSU_ID --三次返修拍片焊口数,三次返修拍片总数 LEFT JOIN (SELECT COUNT(joint.JOT_ID) AS RepairJoint3, SUM(ISNULL(joint.RT3_RepairFilmNum,0)) AS RepairFilm3, joint.ProjectId,joint.InstallationId,iso.BSU_ID FROM HJGL_PW_JointInfo joint LEFT JOIN HJGL_PW_IsoInfo iso ON iso.ISO_ID = joint.ISO_ID WHERE joint.PointType='点口' AND joint.RT3_RepairFilm IS NOT NULL AND (joint.ste_id=@steel OR @steel IS NULL) AND joint.dreportid IS NOT NULL AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R3')>= @date1 OR @date1 IS NULL) AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R3')<= @date2 OR @date2 IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,iso.BSU_ID) AS RepairJoint3 ON RepairJoint3.ProjectId=total.ProjectId AND RepairJoint3.InstallationId = total.InstallationId AND RepairJoint3.BSU_ID = total.BSU_ID LEFT JOIN Base_Project project ON total.ProjectId=project.ProjectId WHERE (CHARINDEX(total.ProjectId,@projectId)>0 OR @projectId IS NULL) AND (total.InstallationId = @installationId OR @installationId IS NULL) AND (total.BSU_ID=@unitcode OR @unitcode IS NULL) --AND (total.Welder = @WED_ID OR @WED_ID IS NULL) GO ALTER PROC [dbo].[HJGL_sp_rpt_welderStatistics] @unitcode varchar(50) = NULL, @WED_ID nvarchar(50) = NULL, @projectId NVARCHAR(50) = NULL AS /*焊工焊接检测统计表*/ SELECT welder.ProjectId, project.ProjectCode,--施工号 wld.wed_code,-- 焊工代码 wld.wed_name,--焊工名称 ISNULL(totalJoint.totalJoint,0) AS totalJoint, --已焊焊缝数 ISNULL(TrustJointNum.TrustJointNum,0) AS TrustJointNum, --已委托焊缝数 CAST((CASE ISNULL(TrustJointNum.TrustJointNum,0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(TrustJointNum.TrustJointNum,0)/(1.0 * totalJoint.totalJoint) END) AS DECIMAL(19,3)) AS OneCheckRate , ---一次检测比例 ISNULL(FixedJoint.FixedJoint,0) AS FixedJoint, --已焊固定口数 ISNULL(TrustFixedJoint.TrustFixedJoint,0) AS TrustFixedJoint, --已委托固定口数 CAST((CASE ISNULL(TrustFixedJoint.TrustFixedJoint,0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(TrustFixedJoint.TrustFixedJoint,0)/(1.0 * FixedJoint.FixedJoint) END) AS DECIMAL(19,3)) AS FixedJointCheckRate , ---固定口检测比例 ISNULL(ButtJoint.ButtJoint,0) AS ButtJoint, --已焊对接焊缝数 ISNULL(TrustButtJoint.TrustButtJoint,0) AS TrustButtJoint, --已委托对接焊缝数 CAST((CASE ISNULL(TrustButtJoint.TrustButtJoint,0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(TrustButtJoint.TrustButtJoint,0)/(1.0 * ButtJoint.ButtJoint) END) AS DECIMAL(19,3)) AS ButtJointCheckRate , ---对接焊缝检测比例 ISNULL(FilletJoint.FilletJoint,0) AS FilletJoint, --已焊角焊缝数 ISNULL(TrustFilletJoint.TrustFilletJoint,0) AS TrustFilletJoint, --已委托角焊缝数 CAST((CASE ISNULL(TrustFilletJoint.TrustFilletJoint,0) WHEN 0 THEN 0 ELSE 1.0 * ISNULL(TrustFilletJoint.TrustFilletJoint,0)/(1.0 * FilletJoint.FilletJoint) END) AS DECIMAL(19,3)) AS FilletJointCheckRate FROM dbo.Project_Welder AS welder LEFT JOIN Base_Project project on welder.ProjectId=project.ProjectId LEFT JOIN dbo.HJGL_BS_Welder wld on wld.WED_ID=welder.WED_ID --已焊焊口数 LEFT JOIN (SELECT COUNT(*) AS totalJoint,HJGL_pw_jointinfo.JOT_CellWelder,ProjectId FROM HJGL_PW_JointInfo WHERE HJGL_pw_jointinfo.DReportID is not null GROUP BY HJGL_pw_jointinfo.JOT_CellWelder,ProjectId) AS totalJoint ON totalJoint.JOT_CellWelder = welder.WED_ID and totalJoint.ProjectId=welder.ProjectId --已焊固定口数 LEFT JOIN (SELECT COUNT(*) AS FixedJoint,JOT_CellWelder,ProjectId FROM HJGL_PW_JointInfo WHERE DReportID is not null AND JOT_JointAttribute='固定' GROUP BY HJGL_pw_jointinfo.JOT_CellWelder,ProjectId) AS FixedJoint ON FixedJoint.JOT_CellWelder = welder.WED_ID and FixedJoint.ProjectId=welder.ProjectId --已焊对接焊缝数 LEFT JOIN (SELECT COUNT(*) AS ButtJoint,joint.JOT_CellWelder,ProjectId FROM HJGL_PW_JointInfo joint LEFT JOIN dbo.HJGL_BS_JointType jointType on jointType.JOTY_ID=joint.JOTY_ID WHERE DReportID is not null AND jointType.JOTY_Group='1' GROUP BY joint.JOT_CellWelder,ProjectId) AS ButtJoint ON ButtJoint.JOT_CellWelder = welder.WED_ID and ButtJoint.ProjectId=welder.ProjectId --已焊角焊缝数 LEFT JOIN (SELECT COUNT(*) AS FilletJoint,joint.JOT_CellWelder,ProjectId FROM HJGL_PW_JointInfo joint LEFT JOIN dbo.HJGL_BS_JointType jointType on jointType.JOTY_ID=joint.JOTY_ID WHERE DReportID is not null AND jointType.JOTY_Group='2' GROUP BY joint.JOT_CellWelder,ProjectId) AS FilletJoint ON FilletJoint.JOT_CellWelder = welder.WED_ID and FilletJoint.ProjectId=welder.ProjectId --已委托焊口数 LEFT JOIN (SELECT COUNT(*) AS TrustJointNum,joint.JOT_CellWelder,ProjectId FROM dbo.HJGL_BO_BatchDetail batchDetail LEFT JOIN HJGL_pw_jointinfo joint ON joint.jot_id=batchDetail.jot_id WHERE (batchDetail.NDT is not null OR batchDetail.NDT!='') and joint.JOT_JointNo not like '%A%' and joint.JOT_JointNo not like '%B%' and batchDetail.PointType!='2' GROUP BY joint.JOT_CellWelder,ProjectId) AS TrustJointNum ON TrustJointNum.JOT_CellWelder = welder.WED_ID and TrustJointNum.ProjectId=welder.ProjectId --已委托固定口数 LEFT JOIN (SELECT COUNT(*) AS TrustFixedJoint,joint.JOT_CellWelder,ProjectId FROM dbo.HJGL_BO_BatchDetail batchDetail LEFT JOIN HJGL_pw_jointinfo joint ON joint.jot_id=batchDetail.jot_id WHERE (batchDetail.NDT is not null OR batchDetail.NDT!='') AND joint.JOT_JointAttribute='固定' and joint.JOT_JointNo not like '%A%' and joint.JOT_JointNo not like '%B%' and batchDetail.PointType!='2' GROUP BY joint.JOT_CellWelder,ProjectId) AS TrustFixedJoint ON TrustFixedJoint.JOT_CellWelder = welder.WED_ID and TrustFixedJoint.ProjectId=welder.ProjectId --已委托对接焊缝数 LEFT JOIN (SELECT COUNT(*) AS TrustButtJoint,joint.JOT_CellWelder,ProjectId FROM dbo.HJGL_BO_BatchDetail batchDetail LEFT JOIN HJGL_pw_jointinfo joint ON joint.jot_id=batchDetail.jot_id LEFT JOIN dbo.HJGL_BS_JointType jointType on jointType.JOTY_ID=joint.JOTY_ID WHERE (batchDetail.NDT is not null OR batchDetail.NDT!='') AND jointType.JOTY_Group='1' and joint.JOT_JointNo not like '%A%' and joint.JOT_JointNo not like '%B%' and batchDetail.PointType!='2' GROUP BY joint.JOT_CellWelder,ProjectId) AS TrustButtJoint ON TrustButtJoint.JOT_CellWelder = welder.WED_ID and TrustButtJoint.ProjectId=welder.ProjectId --已委托角焊缝数 LEFT JOIN (SELECT COUNT(*) AS TrustFilletJoint,joint.JOT_CellWelder,ProjectId FROM dbo.HJGL_BO_BatchDetail batchDetail LEFT JOIN HJGL_pw_jointinfo joint ON joint.jot_id=batchDetail.jot_id LEFT JOIN dbo.HJGL_BS_JointType jointType on jointType.JOTY_ID=joint.JOTY_ID WHERE (batchDetail.NDT is not null OR batchDetail.NDT!='') AND jointType.JOTY_Group='2' and joint.JOT_JointNo not like '%A%' and joint.JOT_JointNo not like '%B%' and batchDetail.PointType!='2' GROUP BY joint.JOT_CellWelder,ProjectId) AS TrustFilletJoint ON TrustFilletJoint.JOT_CellWelder = welder.WED_ID and TrustFilletJoint.ProjectId=welder.ProjectId WHERE (welder.ProjectId = @projectId OR @projectId IS NULL) AND (wld.WED_Unit=@unitcode OR @unitcode IS NULL) AND (wld.WED_ID=@WED_ID OR @WED_ID is null) order BY wld.WED_Code GO ALTER VIEW [dbo].[HJGL_View_JointInfo] AS /*管线焊口信息视图*/ SELECT JointInfo.JOT_ID, JointInfo.ProjectId, JointInfo.PointType, JointInfo.RT1_RepairFilm, JointInfo.dreportid, IsoInfo.BSU_ID, JointInfo.STE_ID, JOT_JointNo, JOT_DailyReportNo, --日报告号 (CASE WHEN JointInfo.Jot_WeldingDate IS NOT NULL THEN JointInfo.Jot_WeldingDate ELSE WeldReportMain.JOT_WeldDate END) AS JOT_WeldDate, --焊接日期 JointInfo.ISO_ID, ISO_IsoNo, --管线号 Unit.UnitCode, Unit.UnitName, Steel.STE_Code AS STE_Name1,--材质1 Steel1.STE_Code AS STE_Name2,--材质2 Welder.WED_Code AS WED_Code1, --盖面焊工代号 Welder.WED_Name AS WED_Name1, --盖面焊工名称 FloorWelder.WED_Code AS WED_Code2, --打底焊工代号 FloorWelder.WED_Name AS WED_Name2, --打底焊工名称 JointInfo.WLO_Code, (CASE WHEN JointInfo.WLO_Code='F' THEN '现场安装' ELSE '预制' END) AS WLO_Name,--焊接区域 JOT_DoneDin, IS_Compute, com1.Com_Name AS Component1,--组件1号 com1.COM_Code AS COM_Code1,--组件1号 com2.COM_Name AS Component2,--组件2号 com2.COM_Code AS COM_Code2,--组件1号 m1.WMT_MatCode AS WeldMat,--焊条 WeldMaterial.WMT_MatCode AS WeldSilk,--焊丝 batchDetail.PointType AS JointStatus,---焊口状态 JOT_Dia, JOT_Size, JOT_Sch, JOT_FactSch, JOT_JointFlag, JOT_TrustFlag, ProessTypes, JOT_JointDesc, JointInfo.JOTY_ID, JointType.JOTY_Name,--焊缝类型 JointType.JOTY_Code,--焊缝类型 JointInfo.WME_ID, WeldMethod.WME_Name AS WME_Name,--焊接方法 WeldMethod.WME_Code,--焊接方法代码 SlopeType.JST_Name, --坡口类型 SlopeType.JST_Code, --坡口类型代码 IS_Proess, (CASE WHEN IS_Proess=1 THEN '是' ELSE '否' END) AS IS_ProessName, JOT_PrepareTemp, JOT_CellTemp, JOT_LastTemp, JOT_JointAttribute, JOT_Location, batch.BatchCode AS BatchCode,--批次号 batchDetail.PointDate AS PointDate,--点口日期 NULL AS CH_TrustCode, NULL AS CH_TrustDate, --NDTType.NDT_Name as NDT_Name,--探伤类型 JointInfo.JOT_Remark, JointInfo.RT_States, JointInfo.UT_States, JointInfo.MT_States, JointInfo.PT_States, JointInfo.PAUT_States, (case when (select top 1 IsOK from HJGL_CH_HotProessResult hr where hr.JOT_ID=JointInfo.JOT_ID)=1 then '合格' else '' end) as HotProessResult, Servicess.SER_Code,--介质代号 --NDTRate.NDTR_Name as NDTR_Name, --探伤比例 --NDTRate.NDTR_Code, --探伤比例 isoInfo.ISO_TestPress,--试验压力 isoInfo.ISO_DesignPress,--设计压力 isoInfo.ISO_DesignTemperature,--设计温度 IsoClass.ISC_IsoCode,--管线等级 is_hj= CAST((CASE WHEN JointInfo.DReportID IS NULL THEN '0' ELSE '1' END ) AS BIT), --是否焊接 if_dk=CAST((CASE WHEN batchDetail.NDT IS NULL THEN '0' ELSE '1' END) AS BIT), --是否点口 JointInfo.InstallationId, JointInfo.NDTR_ID, JointInfo.IsSpecial, JointInfo.IsSpecial AS IsSpecialName, --是否特殊 Installation.InstallationName,--装置 NDTRate.NDTR_Name, JointInfo.Sort1,JointInfo.Sort2,JointInfo.Sort3,JointInfo.Sort4,JointInfo.Sort5 ,JointType.JOTY_Group FROM HJGL_PW_JointInfo AS JointInfo LEFT JOIN HJGL_PW_IsoInfo AS IsoInfo ON IsoInfo.ISO_ID=JointInfo.ISO_ID LEFT JOIN HJGL_BO_WeldReportMain AS WeldReportMain ON WeldReportMain.DReportID=JointInfo.DReportID LEFT JOIN HJGL_BS_Steel AS Steel ON Steel.STE_ID=JointInfo.STE_ID LEFT JOIN HJGL_BS_Steel AS Steel1 ON Steel1.STE_ID=JointInfo.STE_ID2 LEFT JOIN HJGL_BS_Welder AS Welder ON Welder.WED_ID= JointInfo.JOT_CellWelder LEFT JOIN HJGL_BS_Welder AS FloorWelder ON FloorWelder.WED_ID=JointInfo.JOT_FloorWelder --LEFT JOIN HJGL_BS_WeldLocation AS WeldLocation ON WeldLocation.WLO_Code =JointInfo.WLO_Code LEFT JOIN HJGL_BS_Component AS com1 ON com1.COM_ID=JointInfo.JOT_Component1 LEFT JOIN HJGL_BS_Component AS com2 ON com2.COM_ID=JointInfo.JOT_Component2 LEFT JOIN HJGL_BS_WeldMaterial m1 ON m1.WMT_ID=JointInfo.JOT_WeldMat LEFT JOIN HJGL_BS_WeldMaterial AS WeldMaterial ON WeldMaterial.WMT_ID=JointInfo.JOT_WeldSilk LEFT JOIN HJGL_BS_JointType AS JointType ON JointType.JOTY_ID=JointInfo.JOTY_ID LEFT JOIN HJGL_BS_WeldMethod AS WeldMethod ON WeldMethod .WME_ID=JointInfo.WME_ID LEFT JOIN HJGL_BS_SlopeType AS SlopeType ON SlopeType.JST_ID=JointInfo.JST_ID LEFT JOIN dbo.HJGL_BO_BatchDetail AS batchDetail ON batchDetail.JOT_ID = JointInfo.JOT_ID LEFT JOIN dbo.HJGL_BO_Batch AS batch ON batch.BatchId = batchDetail.BatchId LEFT JOIN Base_Unit AS Unit ON Unit.UnitId=IsoInfo.BSU_ID --left join HJGL_BS_NDTRate AS NDTRate on NDTRate.NDTR_ID=IsoInfo.NDTR_ID LEFT JOIN HJGL_BS_Service AS Servicess ON Servicess.SER_ID=IsoInfo.SER_ID LEFT JOIN HJGL_BS_IsoClass AS IsoClass ON IsoClass.ISC_ID=IsoInfo.ISC_ID LEFT JOIN Project_Installation AS Installation ON Installation.InstallationId =JointInfo.InstallationId LEFT JOIN HJGL_BS_NDTRate AS NDTRate ON NDTRate.NDTR_ID =JointInfo.NDTR_ID GO ALTER PROC [dbo].[HJGL_sp_rpt_welderPerformance] @unitcode VARCHAR(50) = NULL, @steel VARCHAR(50) = NULL, @WED_ID NVARCHAR(50) = NULL, @date1 DATETIME = NULL, @date2 DATETIME = NULL, @projectId NVARCHAR(500) = NULL, @installationId NVARCHAR(50)=NULL AS /*焊工业绩分析*/ SELECT NEWID() AS Id, total.ProjectId, project.ProjectCode,--施工号 total.Welder, wld.wed_code,-- 焊工代码 wld.wed_name,--焊工名称 wld.WED_Sex, --性别 -------------本期start CAST(ISNULL(total.totalSize,0) AS DECIMAL(19,2)) AS totalSize, --总寸径 ISNULL(total.totalJoint,0) AS totalJoint, --总焊口 ISNULL(JointNum1.JointNum1,0) AS JointNum1, --一次拍片焊口数 ISNULL(JointNum1.JointNum1,0)-ISNULL(JointNoPassNum1.JointNoPassNum1,0) AS JointPassNum1, --一次拍片合格焊口数 ISNULL(JointNoPassNum1.JointNoPassNum1,0) AS RepairJoint1, --一次返修焊口数 ISNULL(RepairJoint2.RepairJoint2,0) AS RepairJoint2, --二次返修焊口数 ISNULL(RepairJoint3.RepairJoint3,0) AS RepairJoint3, --三次返修焊口数 CAST((CASE ISNULL((ISNULL(JointNum1.JointNum1,0)-ISNULL(JointNoPassNum1.JointNoPassNum1,0)),0) WHEN 0 THEN 0 ELSE (CASE(ISNULL(JointNum1.JointNum1,0)) WHEN 0 THEN 0 ELSE 1.0 * ISNULL((ISNULL(JointNum1.JointNum1,0)-ISNULL(JointNoPassNum1.JointNoPassNum1,0)),0)/(1.0 * JointNum1.JointNum1) END)END) AS DECIMAL(19,3)) AS JointPassRate , ---一次拍片焊口合格率 ISNULL(JointNum1.totalfilm,0) AS totalfilm, --一次拍片数 (ISNULL(JointNum1.totalfilm,0)- ISNULL(JointNoPassNum2.JointNoPassFilmNum2,0)) AS totalPassfilm, --一次拍片合格数 ISNULL(JointNoPassNum2.JointNoPassFilmNum2,0) AS repairFilm1, --一次返修片子数 ISNULL(RepairJoint2.repairFilm2,0) AS repairFilm2, --二次返修片子数 ISNULL(RepairJoint3.repairFilm3,0) AS repairFilm3, --三次返修片子数 CAST((CASE (ISNULL(JointNum1.totalfilm,0)- ISNULL(JointNoPassNum2.JointNoPassFilmNum2,0)) WHEN 0 THEN 0 ELSE (CASE(ISNULL(JointNum1.totalfilm,0)) WHEN 0 THEN 0 ELSE 1.0 * (ISNULL(JointNum1.totalfilm,0)- ISNULL(JointNoPassNum2.JointNoPassFilmNum2,0))/(1.0 * JointNum1.totalfilm) END) END) AS DECIMAL(19,3)) AS JointFilmPassRate ---一次拍片合格率 FROM --总达因值 --总焊口 (SELECT SUM(joint.JOT_Size) AS totalSize,COUNT(*) AS totalJoint ,joint.ProjectId,joint.InstallationId,joint.BSU_ID,joint.Welder FROM View_JointWelder joint LEFT JOIN HJGL_BO_WeldReportMain report ON joint.DReportID = report.DReportID WHERE joint.DReportID IS NOT NULL AND (report.JOT_WeldDate >= @date1 OR @date1 IS NULL) AND (report.JOT_WeldDate <= @date2 OR @date2 IS NULL) AND (joint.ste_id=@steel OR @steel IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,joint.BSU_ID, joint.Welder) AS total --一次拍片焊口数 , 一次拍片总数,一次拍片合格总数 LEFT JOIN (SELECT COUNT(joint.JOT_ID) AS JointNum1, SUM(joint.RT_FilmNum) AS totalfilm, joint.ProjectId,joint.InstallationId,joint.BSU_ID,joint.Welder FROM dbo.View_JointWelder joint WHERE joint.PointType='点口' AND joint.RT_FilmNum IS NOT NULL and joint.RT_FilmNum>0 and (select COUNT(*) from dbo.HJGL_BO_QualityRating where JOT_ID=joint.JOT_ID and FilmNum is not null)>0 AND (joint.ste_id=@steel OR @steel IS NULL) AND joint.dreportid IS NOT NULL AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_BO_QualityRating WHERE JOT_ID=joint.JOT_ID)>= @date1 OR @date1 IS NULL) AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_BO_QualityRating WHERE JOT_ID=joint.JOT_ID)<= @date2 OR @date2 IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,joint.BSU_ID, joint.Welder) AS JointNum1 ON JointNum1.ProjectId=total.ProjectId AND JointNum1.InstallationId = total.InstallationId AND JointNum1.BSU_ID = total.BSU_ID AND JointNum1.Welder = total.Welder --一次拍片不合格焊口数 LEFT JOIN (SELECT COUNT(distinct joint.JOT_ID) AS JointNoPassNum1, joint.ProjectId,joint.InstallationId,joint.BSU_ID,rr.JOT_CellWelder as Welder FROM dbo.HJGL_CH_RepairItemRecord rr left join dbo.HJGL_View_JointInfo joint on rr.JOT_ID=joint.JOT_ID WHERE joint.PointType='点口' AND (joint.RT1_RepairFilm IS NOT NULL or (select top 1 CH_TrustItemID from dbo.HJGL_CH_TrustItem ti where ti.JOT_ID=joint.JOT_ID and ti.States='4') is not null) AND (joint.ste_id=@steel OR @steel IS NULL) AND joint.dreportid IS NOT NULL and rr.RepairMark='R1' AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R1')>= @date1 OR @date1 IS NULL) AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R1')<= @date2 OR @date2 IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,joint.BSU_ID, rr.JOT_CellWelder) AS JointNoPassNum1 ON JointNoPassNum1.ProjectId=total.ProjectId AND JointNoPassNum1.InstallationId = total.InstallationId AND JointNoPassNum1.BSU_ID = total.BSU_ID AND JointNoPassNum1.Welder = total.Welder --一次拍片不合格拍片数 LEFT JOIN (SELECT count(rr.RepairItemRecordId) as JointNoPassFilmNum2, joint.ProjectId,joint.InstallationId,joint.BSU_ID,rr.JOT_CellWelder as Welder FROM dbo.HJGL_CH_RepairItemRecord rr left join dbo.HJGL_View_JointInfo joint on rr.JOT_ID=joint.JOT_ID WHERE joint.PointType='点口' --AND (joint.RT1_RepairFilm IS NOT NULL or (select top 1 CH_TrustItemID from dbo.HJGL_CH_TrustItem ti where ti.JOT_ID=joint.JOT_ID and ti.States='4') is not null) AND (joint.ste_id=@steel OR @steel IS NULL) AND joint.dreportid IS NOT NULL and rr.RepairMark='R1' AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R1')>= @date1 OR @date1 IS NULL) AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R1')<= @date2 OR @date2 IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,joint.BSU_ID, rr.JOT_CellWelder) AS JointNoPassNum2 ON JointNoPassNum2.ProjectId=total.ProjectId AND JointNoPassNum2.InstallationId = total.InstallationId AND JointNoPassNum2.BSU_ID = total.BSU_ID AND JointNoPassNum2.Welder = total.Welder --二次返修拍片焊口数,二次返修拍片总数 LEFT JOIN (SELECT COUNT(joint.JOT_ID) AS RepairJoint2, SUM(ISNULL(joint.RT2_RepairFilmNum,0)) AS RepairFilm2, joint.ProjectId,joint.InstallationId,joint.BSU_ID,joint.Welder FROM dbo.View_JointWelder joint WHERE joint.PointType='点口' AND joint.RT2_RepairFilm IS NOT NULL AND (joint.ste_id=@steel OR @steel IS NULL) AND joint.dreportid IS NOT NULL AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R2')>= @date1 OR @date1 IS NULL) AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R2')<= @date2 OR @date2 IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,joint.BSU_ID, joint.Welder) AS RepairJoint2 ON RepairJoint2.ProjectId=total.ProjectId AND RepairJoint2.InstallationId = total.InstallationId AND RepairJoint2.BSU_ID = total.BSU_ID AND RepairJoint2.Welder = total.Welder --三次返修拍片焊口数,三次返修拍片总数 LEFT JOIN (SELECT COUNT(joint.JOT_ID) AS RepairJoint3, SUM(ISNULL(joint.RT3_RepairFilmNum,0)) AS RepairFilm3, joint.ProjectId,joint.InstallationId,joint.BSU_ID,joint.Welder FROM dbo.View_JointWelder joint WHERE joint.PointType='点口' AND joint.RT3_RepairFilm IS NOT NULL AND (joint.ste_id=@steel OR @steel IS NULL) AND joint.dreportid IS NOT NULL AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R3')>= @date1 OR @date1 IS NULL) AND ((SELECT TOP 1 SignDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R3')<= @date2 OR @date2 IS NULL) GROUP BY joint.ProjectId,joint.InstallationId,joint.BSU_ID, joint.Welder) AS RepairJoint3 ON RepairJoint3.ProjectId=total.ProjectId AND RepairJoint3.InstallationId = total.InstallationId AND RepairJoint3.BSU_ID = total.BSU_ID AND RepairJoint3.Welder = total.Welder LEFT JOIN Base_Project project ON total.ProjectId=project.ProjectId LEFT JOIN dbo.HJGL_BS_Welder wld ON wld.WED_ID=total.Welder WHERE (CHARINDEX(total.ProjectId,@projectId)>0 OR @projectId IS NULL) AND (total.InstallationId = @installationId OR @installationId IS NULL) AND (wld.WED_Unit=@unitcode OR @unitcode IS NULL) AND (total.Welder = @WED_ID OR @WED_ID IS NULL) GO