132 lines
7.4 KiB
MySQL
132 lines
7.4 KiB
MySQL
|
|
|||
|
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
|
|||
|
/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
SELECT
|
|||
|
NEWID() AS Id,
|
|||
|
total.ProjectId,
|
|||
|
project.ProjectCode,--ʩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
total.Welder,
|
|||
|
wld.wed_code,-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
wld.wed_name,--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
wld.WED_Sex, --<EFBFBD>Ա<EFBFBD>
|
|||
|
-------------<EFBFBD><EFBFBD><EFBFBD><EFBFBD>start
|
|||
|
CAST(ISNULL(total.totalSize,0) AS DECIMAL(19,2)) AS totalSize, --<EFBFBD>ܴ羶
|
|||
|
ISNULL(total.totalJoint,0) AS totalJoint, --<EFBFBD>ܺ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ISNULL(JointNum1.JointNum1,0) AS JointNum1, --һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
ISNULL(JointNum1.JointNum1,0)-ISNULL(JointNoPassNum1.JointNoPassNum1,0) AS JointPassNum1, --һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ISNULL(JointNoPassNum1.JointNoPassNum1,0) AS RepairJoint1, --һ<EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ISNULL(RepairJoint2.RepairJoint2,0) AS RepairJoint2, --<EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ISNULL(RepairJoint3.RepairJoint3,0) AS RepairJoint3, --<EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
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 , ---һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD>ںϸ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
ISNULL(JointNum1.totalfilm,0) AS totalfilm, --һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD>
|
|||
|
(ISNULL(JointNum1.totalfilm,0)- ISNULL(JointNoPassNum1.JointNoPassFilmNum1,0)) AS totalPassfilm, --һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ISNULL(JointNoPassNum1.JointNoPassFilmNum1,0) AS repairFilm1, --һ<EFBFBD>η<EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
ISNULL(RepairJoint2.repairFilm2,0) AS repairFilm2, --<EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
ISNULL(RepairJoint3.repairFilm3,0) AS repairFilm3, --<EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
CAST((CASE (ISNULL(JointNum1.totalfilm,0)- ISNULL(JointNoPassNum1.JointNoPassFilmNum1,0)) WHEN 0 THEN 0
|
|||
|
ELSE (CASE(ISNULL(JointNum1.totalfilm,0)) WHEN 0 THEN 0
|
|||
|
ELSE 1.0 * (ISNULL(JointNum1.totalfilm,0)- ISNULL(JointNoPassNum1.JointNoPassFilmNum1,0))/(1.0 * JointNum1.totalfilm)
|
|||
|
END) END) AS DECIMAL(19,3)) AS JointFilmPassRate ---һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
FROM
|
|||
|
--<EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD>ֵ --<EFBFBD>ܺ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
(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
|
|||
|
|
|||
|
|
|||
|
--һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> , һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
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='<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' 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
|
|||
|
|
|||
|
--һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
LEFT JOIN (SELECT COUNT(distinct joint.JOT_ID) AS JointNoPassNum1,count(rr.RepairItemRecordId) as JointNoPassFilmNum1,
|
|||
|
joint.ProjectId,joint.InstallationId,joint.BSU_ID,joint.Welder
|
|||
|
FROM dbo.View_JointWelder joint
|
|||
|
left join dbo.HJGL_CH_RepairItemRecord rr on rr.JOT_ID=joint.JOT_ID
|
|||
|
WHERE joint.PointType='<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' 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 ConfirmDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R1')>= @date1 OR @date1 IS NULL)
|
|||
|
AND ((SELECT TOP 1 ConfirmDate 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, joint.Welder) AS JointNoPassNum1
|
|||
|
ON JointNoPassNum1.ProjectId=total.ProjectId AND JointNoPassNum1.InstallationId = total.InstallationId
|
|||
|
AND JointNoPassNum1.BSU_ID = total.BSU_ID AND JointNoPassNum1.Welder = total.Welder
|
|||
|
|
|||
|
--<EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
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='<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' 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 ConfirmDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R2')>= @date1 OR @date1 IS NULL)
|
|||
|
AND ((SELECT TOP 1 ConfirmDate 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
|
|||
|
|
|||
|
|
|||
|
|
|||
|
--<EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
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='<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' 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 ConfirmDate FROM dbo.HJGL_CH_RepairItemRecord WHERE JOT_ID=joint.JOT_ID AND RepairMark='R3')>= @date1 OR @date1 IS NULL)
|
|||
|
AND ((SELECT TOP 1 ConfirmDate 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 JointNum1.totalfilm>0
|
|||
|
AND (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
|
|||
|
|
|||
|
|