xinjiang/DataBase/版本日志/SGGLDB_V2024-07-24-001.sql

112 lines
7.2 KiB
Transact-SQL

ALTER TABLE Welder_TestApplication ADD OwnerNum NVARCHAR(50)
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业主编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Welder_TestApplication', @level2type=N'COLUMN',@level2name=N'OwnerNum'
GO
ALTER TABLE [dbo].[Welder_TestApplication] WITH CHECK ADD CONSTRAINT [FK_Welder_TestApplication_Sys_User] FOREIGN KEY([ConUnitWeldingEngineer])
REFERENCES [dbo].[Sys_User] ([UserId])
GO
ALTER TABLE [dbo].[Welder_TestApplication] CHECK CONSTRAINT [FK_Welder_TestApplication_Sys_User]
GO
insert into Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
values('7CA6A244-F397-47E1-9A8A-E19489D983DA','焊工动态统计表','HJGL/WeldingReport/WelderDynamicStatistics.aspx',190,'F3B157B7-9BEE-4150-80CB-087828F1C51D','Menu_HJGL',0,1,1)
GO
CREATE PROC [dbo].[sp_rpt_WelderDynamicStatistics]
@projectId NVARCHAR(50) = NULL,
@unitId NVARCHAR(50)=NULL
AS
/********焊工动态统计表***********/
SELECT unit.UnitId,
unit.UnitName,
projectUnit.ProjectId,
ISNULL(total_count.total_count,0) AS total_count,--报考总人数
ISNULL(PD_wait_exam.PD_wait_exam_count,0) AS PD_wait_exam_count,--管道(人数)待考试
ISNULL(PD_qualified_duty.PD_qualified_duty_count,0) AS PD_qualified_duty_count, --管道(人数)合格在岗
ISNULl(PD_qualified_leave.PD_qualified_leave_count,0) AS PD_qualified_leave_count, --管道(人数) 合格离岗
ISNULL(FE_wait_exam.FE_wait_exam_count,0) AS FE_wait_exam_count,--设备(人数)待考试
ISNULL(FE_qualified_duty.FE_qualified_duty_count,0) AS FE_qualified_duty_count,--设备(人数)合格在岗
ISNULL(FE_qualified_leave.FE_qualified_leave_count,0) AS FE_qualified_leave_count,--设备(人数)合格离岗
ISNULL(JG_wait_exam.JG_wait_exam_count,0) AS JG_wait_exam_count,--钢结构(人数)待考试
ISNULL(JG_qualified_duty.JG_qualified_duty_count,0) AS JG_qualified_duty_count,--钢机构(人数)合格在岗
ISNULl(JG_qualified_leave.JG_qualified_leave_count,0) AS JG_qualified_leave_count,--钢结构(人数)合格离岗
ISNULL(TJ_wait_exam.TJ_wait_exam_count,0) AS TJ_wait_exam_count,--土建(人数)待考试
ISNULl(TJ_qualified_duty.TJ_qualified_duty_count,0) AS TJ_qualified_duty_count,--土建(人数)合格在岗
ISNULL(TJ_qualified_leave.TJ_qualified_leave_count,0) AS TJ_qualified_leave_count --土建(人数)合格离岗
FROM Base_Unit AS unit
LEFT JOIN Project_ProjectUnit AS projectUnit ON projectUnit.UnitId = unit.UnitId
--报考总人数
LEFT JOIN (SELECT COUNT(*) AS total_count,ProjectId,ConUnit
FROM Welder_TestApplication
GROUP BY ProjectId,ConUnit) AS total_count ON total_count.ConUnit = unit.UnitId and total_count.ProjectId=projectUnit.ProjectId
--管道(人数) 待考试
LEFT JOIN (SELECT COUNT(*) AS PD_wait_exam_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='管道' AND Welder_TestApplication.WelderCondition='待考试'
GROUP BY ProjectId,ConUnit) AS PD_wait_exam ON PD_wait_exam.ConUnit = unit.UnitId and PD_wait_exam.ProjectId=projectUnit.ProjectId
--管道(人数) 合格在岗
LEFT JOIN (SELECT COUNT(*) AS PD_qualified_duty_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='管道' AND Welder_TestApplication.WelderCondition='合格在岗'
GROUP BY ProjectId,ConUnit) AS PD_qualified_duty ON PD_qualified_duty.ConUnit = unit.UnitId and PD_qualified_duty.ProjectId=projectUnit.ProjectId
--管道(人数) 合格离岗
LEFT JOIN (SELECT COUNT(*) AS PD_qualified_leave_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='管道' AND Welder_TestApplication.WelderCondition='合格离岗'
GROUP BY ProjectId,ConUnit) AS PD_qualified_leave ON PD_qualified_leave.ConUnit = unit.UnitId and PD_qualified_leave.ProjectId=projectUnit.ProjectId
--设备(人数) 待考试
LEFT JOIN (SELECT COUNT(*) AS FE_wait_exam_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='设备' AND Welder_TestApplication.WelderCondition='待考试'
GROUP BY ProjectId,ConUnit) AS FE_wait_exam ON FE_wait_exam.ConUnit = unit.UnitId and FE_wait_exam.ProjectId=projectUnit.ProjectId
--设备(人数) 合格在岗
LEFT JOIN (SELECT COUNT(*) AS FE_qualified_duty_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='设备' AND Welder_TestApplication.WelderCondition='合格在岗'
GROUP BY ProjectId,ConUnit) AS FE_qualified_duty ON FE_qualified_duty.ConUnit = unit.UnitId and FE_qualified_duty.ProjectId=projectUnit.ProjectId
--设备(人数) 合格离岗
LEFT JOIN (SELECT COUNT(*) AS FE_qualified_leave_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='设备' AND Welder_TestApplication.WelderCondition='合格离岗'
GROUP BY ProjectId,ConUnit) AS FE_qualified_leave ON FE_qualified_leave.ConUnit = unit.UnitId and FE_qualified_leave.ProjectId=projectUnit.ProjectId
--钢结构(人数) 待考试
LEFT JOIN (SELECT COUNT(*) AS JG_wait_exam_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='结构' AND Welder_TestApplication.WelderCondition='待考试'
GROUP BY ProjectId,ConUnit) AS JG_wait_exam ON JG_wait_exam.ConUnit = unit.UnitId and JG_wait_exam.ProjectId=projectUnit.ProjectId
--钢结构(人数) 合格在岗
LEFT JOIN (SELECT COUNT(*) AS JG_qualified_duty_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='结构' AND Welder_TestApplication.WelderCondition='合格在岗'
GROUP BY ProjectId,ConUnit) AS JG_qualified_duty ON JG_qualified_duty.ConUnit = unit.UnitId and JG_qualified_duty.ProjectId=projectUnit.ProjectId
--钢结构(人数) 合格离岗
LEFT JOIN (SELECT COUNT(*) AS JG_qualified_leave_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='结构' AND Welder_TestApplication.WelderCondition='合格离岗'
GROUP BY ProjectId,ConUnit) AS JG_qualified_leave ON JG_qualified_leave.ConUnit = unit.UnitId and JG_qualified_leave.ProjectId=projectUnit.ProjectId
--土建(人数) 待考试
LEFT JOIN (SELECT COUNT(*) AS TJ_wait_exam_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='土建' AND Welder_TestApplication.WelderCondition='待考试'
GROUP BY ProjectId,ConUnit) AS TJ_wait_exam ON TJ_wait_exam.ConUnit = unit.UnitId and TJ_wait_exam.ProjectId=projectUnit.ProjectId
--土建(人数) 合格在岗
LEFT JOIN (SELECT COUNT(*) AS TJ_qualified_duty_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='土建' AND Welder_TestApplication.WelderCondition='合格在岗'
GROUP BY ProjectId,ConUnit) AS TJ_qualified_duty ON TJ_qualified_duty.ConUnit = unit.UnitId and TJ_qualified_duty.ProjectId=projectUnit.ProjectId
--土建(人数) 合格离岗
LEFT JOIN (SELECT COUNT(*) AS TJ_qualified_leave_count,ProjectId,ConUnit
FROM Welder_TestApplication
WHERE Welder_TestApplication.WelderClass='土建' AND Welder_TestApplication.WelderCondition='合格离岗'
GROUP BY ProjectId,ConUnit) AS TJ_qualified_leave ON TJ_qualified_leave.ConUnit = unit.UnitId and TJ_qualified_leave.ProjectId=projectUnit.ProjectId
WHERE projectUnit.UnitType='2'
AND(projectUnit.ProjectId=@projectId OR @projectId IS NULL)
AND (unit.UnitId=@unitId OR @unitId IS NULL)
GO