SGGL_SHJ/DataBase/版本日志/SGGLDB_V2022-09-22.sql

117 lines
6.3 KiB
MySQL
Raw Normal View History

--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD>
ALTER PROC [dbo].[sp_rpt_WelderPerformance]
@unitcode NVARCHAR(50) = NULL,
@UnitWorkId NVARCHAR(50) = NULL,
@steel NVARCHAR(50) = NULL,
@wloName NVARCHAR(50) = NULL,
@date1 DATETIME = NULL,
@date2 DATETIME = NULL,
@projectId NVARCHAR(50) = NULL
AS
/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
SELECT
welder.ProjectId,
welder.WelderCode,-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
welder.PersonName,--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(CASE WHEN Persons.Sex ='2' THEN 'Ů' ELSE '<EFBFBD><EFBFBD>' END) AS Sex, --<EFBFBD>Ա<EFBFBD>
-------------<EFBFBD><EFBFBD><EFBFBD><EFBFBD>start
CAST(ISNULL(nowtotal_din.nowtotal_din,0) AS DECIMAL(19,2)) AS nowtotal_din, --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD>ֵ
ISNULL(nowtotal_din.nowtotal_jot,0) AS nowtotal_jot, --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><EFBFBD><EFBFBD>
ISNULL(nowtotal_Rt.Rt_JotNum,0) AS rt_total_Jot, -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RT<52><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ISNULL(nowtotal_repairjot.nowtotal_repairjot,0) AS nowtotal_repairjot, -- <20><><EFBFBD><EFBFBD>RT<52><54><EFBFBD>޺<EFBFBD><DEBA><EFBFBD><EFBFBD><EFBFBD>
CONVERT(NVARCHAR(10),(CAST((CASE ISNULL(nowtotal_Rt.Rt_JotNum,0) WHEN 0 THEN 0
ELSE 100.0 * ISNULL(nowtotal_repairjot.nowtotal_repairjot,0)/(1.0 * nowtotal_Rt.Rt_JotNum) END) AS DECIMAL(8,1))))+'%' AS nowrepairrate, -- <20><><EFBFBD><EFBFBD>RT<52><54><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD>ڣ<EFBFBD>
ISNULL(nowtotalfilm.nowtotalfilm,0) AS nowtotalfilm, --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>RT<EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ISNULL(nowtotalfilm.nopassfilm,0) AS nopassfilm, --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>RT<EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD>
CONVERT(NVARCHAR(10),(CAST((CASE ISNULL(nowtotalfilm.nowtotalfilm,0) WHEN 0 THEN 0
ELSE 100.0 * ISNULL(nowtotalfilm.nopassfilm,0)/(1.0 * nowtotalfilm.nowtotalfilm) END) AS DECIMAL(8,1))))+'%'
AS nopassfilmrate , ---<EFBFBD><EFBFBD><EFBFBD><EFBFBD>RT<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
teamGroup.TeamGroupName AS education, --<EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD><EFBFBD><EFBFBD>
welder.States
FROM SitePerson_Person AS welder
LEFT JOIN Person_Persons AS Persons ON welder.PersonId =Persons.PersonId
left join ProjectData_TeamGroup as teamGroup on teamGroup.TeamGroupId=welder.TeamGroupId
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD>ֵ --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><EFBFBD><EFBFBD>
LEFT JOIN (SELECT SUM(jot.Size) AS nowtotal_din
,COUNT(*) AS nowtotal_jot
,jot.CoverWelderId
FROM dbo.HJGL_WeldJoint jot
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
LEFT JOIN WBS_UnitWork UnitWork ON UnitWork.UnitWorkId = pipe.UnitWorkId
WHERE jot.WeldingDailyId IS NOT NULL
AND (daily.WeldingDate >= @date1 OR @date1 IS NULL) AND (daily.WeldingDate <= @date2 OR @date2 IS NULL)
AND (pipe.UnitWorkId =@UnitWorkId OR @UnitWorkId IS NULL)
AND (jot.Material1Id=@steel OR @steel IS NULL)
GROUP BY jot.CoverWelderId) AS nowtotal_din ON nowtotal_din.CoverWelderId = welder.PersonId
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Rt<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LEFT JOIN (SELECT COUNT(pointItem.PointBatchItemId) AS Rt_JotNum --RT<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,jot.CoverWelderId
FROM dbo.HJGL_Batch_PointBatchItem pointItem
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
LEFT JOIN Base_DetectionType ndeType ON ndeType.DetectionTypeId = point.DetectionTypeId
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
WHERE pointItem.PointDate IS NOT NULL
AND ndeType.DetectionTypeCode='RT' --<EFBFBD><EFBFBD>ʾRT<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AND (daily.WeldingDate >= @date1 OR @date1 IS NULL)
AND (daily.WeldingDate <= @date2 OR @date2 IS NULL)
AND (pipe.UnitWorkId =@UnitWorkId OR @UnitWorkId IS NULL)
AND (jot.Material1Id=@steel OR @steel IS NULL)
GROUP BY jot.CoverWelderId) AS nowtotal_Rt ON nowtotal_Rt.CoverWelderId = welder.PersonId
-- <20><><EFBFBD><EFBFBD>RT<52><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LEFT JOIN (SELECT COUNT(pointItem.PointBatchItemId) AS nowtotal_repairjot --<EFBFBD><EFBFBD><EFBFBD>޿<EFBFBD><EFBFBD><EFBFBD>
,jot.CoverWelderId
FROM dbo.HJGL_Batch_PointBatchItem pointItem
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
LEFT JOIN Base_DetectionType ndeType ON ndeType.DetectionTypeId = point.DetectionTypeId
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.PointBatchItemId = pointItem.PointBatchItemId
LEFT JOIN dbo.HJGL_Batch_NDEItem ndeItem ON ndeItem.TrustBatchItemId = trustItem.TrustBatchItemId
WHERE pointItem.PointDate IS NOT NULL
AND ndeType.DetectionTypeCode='RT' --<EFBFBD><EFBFBD>ʾRT<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AND ndeItem.CheckResult='2'
AND (daily.WeldingDate >= @date1 OR @date1 IS NULL)
AND (daily.WeldingDate <= @date2 OR @date2 IS NULL)
AND (pipe.UnitWorkId =@UnitWorkId OR @UnitWorkId IS NULL)
AND (jot.Material1Id=@steel OR @steel IS NULL)
GROUP BY jot.CoverWelderId) AS nowtotal_repairjot ON nowtotal_repairjot.CoverWelderId = welder.PersonId
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>RT<EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD>
LEFT JOIN (SELECT SUM(ndeItem.TotalFilm) AS nowtotalfilm
,SUM(ndeItem.PassFilm) AS nowpassfilm
,SUM(ndeItem.TotalFilm-ndeItem.PassFilm) AS nopassfilm,
jot.CoverWelderId
FROM dbo.HJGL_Batch_NDEItem ndeItem
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
LEFT JOIN Base_DetectionType ndeType ON ndeType.DetectionTypeId = point.DetectionTypeId
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
WHERE ndeType.DetectionTypeCode='RT'
AND ndeItem.CheckResult IS NOT NULL --<EFBFBD><EFBFBD>ʾ<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AND jot.WeldingDailyId IS NOT NULL
AND (point.UnitWorkId=@UnitWorkId OR @UnitWorkId IS NULL)
AND (jot.Material1Id=@steel OR @steel IS NULL)
AND (daily.WeldingDate >= @date1 OR @date1 IS NULL) AND (daily.WeldingDate <= @date2 OR @date2 IS NULL)
GROUP BY jot.CoverWelderId) AS nowtotalfilm ON nowtotalfilm.CoverWelderId = welder.PersonId
WHERE (welder.WelderCode IS NOT NULL AND welder.WelderCode!='') AND
(welder.ProjectId = @projectId OR @projectId IS NULL)
AND (welder.UnitId=@unitcode OR @unitcode IS NULL)
AND (welder.WorkPostId='19B8F2A9-28D3-4F20-867A-1B2237C2E228')
AND (welder.PersonId=@wloName OR @wloname IS NULL)
ORDER BY welder.WelderCode
GO