112 lines
7.2 KiB
Transact-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
|