ALTER PROC [dbo].[HJGL_sp_rpt_welderStatistics] @unitcode varchar(50) = NULL, @WED_ID nvarchar(50) = NULL, @projectId NVARCHAR(50) = NULL AS /*焊工焊接检测统计表*/ SELECT welder.ProjectWelderId, 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