Files
HJGL_DS/DataBase/版本日志/HJGLDB_DS_2026-09-23_gf.sql
T
2026-09-23 15:45:26 +08:00

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