68 lines
2.9 KiB
Transact-SQL
68 lines
2.9 KiB
Transact-SQL
|
|
CREATE VIEW [dbo].[View_UnitWeldPerformance]
|
|
AS
|
|
SELECT
|
|
NEWID() AS Id,
|
|
'' as ProjectCode,
|
|
total.WED_Unit,
|
|
un.UnitCode,-- 单位代码
|
|
un.UnitName,--单位名称
|
|
-------------本期start
|
|
ISNULL(MRPerson.MRPersonNum,0) AS MRPersonNum, --维保在岗人数
|
|
ISNULL(TTPerson.TTPersonNum,0) AS TTPersonNum, --技改在岗人数
|
|
ISNULL(WeldJoint.totalSize,0) AS TotalSize, --当日焊接量
|
|
ISNULL(WorkProject.WorkProjectNum,0) AS WorkProjectNum --维保工作项数
|
|
FROM
|
|
--总达因值 --总焊口
|
|
(SELECT SUM(joint.JOT_Size) AS totalSize,COUNT(*) AS totalJoint
|
|
,joint.WED_Unit
|
|
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 >= '2026-01-01'
|
|
GROUP BY joint.WED_Unit) AS total
|
|
|
|
|
|
--维保在岗人数,有几个人领用了焊材就是几个人
|
|
LEFT JOIN (SELECT COUNT(usingMat.UsingMatId) AS MRPersonNum,
|
|
welder.WED_Unit
|
|
FROM dbo.HJGL_BS_Welder welder
|
|
left join dbo.Weld_UsingMat usingMat on usingMat.UsingMan=welder.WED_ID
|
|
WHERE usingMat.UsingDate>= DATEADD(day, -1, CAST(GETDATE() AS date)) and usingMat.UsingDate<CAST(GETDATE() AS date)
|
|
GROUP BY welder.WED_Unit) AS MRPerson
|
|
ON MRPerson.WED_Unit = total.WED_Unit
|
|
|
|
--技改在岗人数,当焊材领用时选择了管道焊接的人数
|
|
LEFT JOIN (SELECT COUNT(distinct usingMat.UsingMan) AS TTPersonNum,
|
|
welder.WED_Unit
|
|
FROM dbo.HJGL_BS_Welder welder
|
|
left join dbo.Weld_UsingMat usingMat on usingMat.UsingMan=welder.WED_ID
|
|
left join dbo.Weld_UsingPlan usingPlan on usingPlan.UsingPlanId=usingMat.UsingPlanId
|
|
WHERE usingMat.UsingDate>= DATEADD(day, -1, CAST(GETDATE() AS date)) and usingMat.UsingDate<CAST(GETDATE() AS date) and usingPlan.IsSteelStru=0
|
|
GROUP BY welder.WED_Unit) AS TTPerson
|
|
ON TTPerson.WED_Unit = total.WED_Unit
|
|
--当日焊接量,只统计自建焊工的总工作量
|
|
LEFT JOIN (SELECT SUM(joint.JOT_Size) AS totalSize
|
|
,joint.WED_Unit
|
|
FROM View_JointWelder joint
|
|
LEFT JOIN HJGL_BO_WeldReportMain report ON joint.DReportID = report.DReportID
|
|
LEFT JOIN HJGL_BS_Welder wed on wed.WED_ID=joint.Welder
|
|
WHERE joint.DReportID IS NOT NULL and report.JOT_WeldDate>= DATEADD(day, -1, CAST(GETDATE() AS date)) and report.JOT_WeldDate<CAST(GETDATE() AS date)
|
|
and wed.IsSelfCreate=1
|
|
GROUP BY joint.WED_Unit) AS WeldJoint
|
|
ON WeldJoint.WED_Unit = total.WED_Unit
|
|
--维保工作项数,自建焊工领用的项目数量
|
|
LEFT JOIN (SELECT COUNT(distinct usingMat.ProjectId) AS WorkProjectNum,
|
|
welder.WED_Unit
|
|
FROM dbo.HJGL_BS_Welder welder
|
|
left join dbo.Weld_UsingMat usingMat on usingMat.UsingMan=welder.WED_ID
|
|
WHERE usingMat.UsingDate>= DATEADD(day, -1, CAST(GETDATE() AS date)) and usingMat.UsingDate<CAST(GETDATE() AS date)
|
|
and welder.IsSelfCreate=1
|
|
GROUP BY welder.WED_Unit) AS WorkProject
|
|
ON WorkProject.WED_Unit = total.WED_Unit
|
|
LEFT JOIN dbo.Base_Unit un ON un.UnitId=total.WED_Unit
|
|
|
|
|
|
GO
|
|
|
|
|