xinjiang/DataBase/版本日志/SGGLDB_V2023-11-29-002.sql

270 lines
14 KiB
MySQL
Raw Permalink Normal View History

2024-11-19 09:45:27 +08:00
drop view dbo.View_ProjectPictureReport;
go
drop view dbo.ProjectSitePersonNum ;
go
drop view dbo.View_DayReport;
go
drop view dbo.View_DayPersonReport;
go
drop view dbo.View_HSSEAccidentReport;
go
drop view dbo.View_HSSECheckReport;
go
drop view dbo.View_MaterPhyQuantity;
go
--ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
create view dbo.View_MaterPhyQuantity as
WITH CTE AS (SELECT project.ProjectId,
project.ProjectName,
project.ProjectCode,
sysConst.ConstText AS UnitTypeName,
CONVERT(VARCHAR(7), ReportDate, 120) AS YearMonth,
SUM(x.Total) AS Totals,
SUM(x.PlanCompletedNum) AS MonthTotalPlanCompletedNum,
SUM(x.ActCompletedNum) AS MonthTotalActCompletedNum,
ROW_NUMBER() OVER (PARTITION BY project.ProjectId ORDER BY CONVERT(VARCHAR(7), ReportDate, 120) ASC) AS RN
FROM HSSE_MaterPhyQuantity x
LEFT JOIN Sys_Const AS sysConst
ON sysConst.GroupId = 'MaterPhyQuantityType' AND
x.MaterPhyQuantityType = sysConst.ConstValue
LEFT JOIN Base_Project project ON x.ProjectId = project.ProjectId
GROUP BY project.ProjectId,
project.ProjectName,
project.ProjectCode,
sysConst.ConstText,
CONVERT(VARCHAR(7), ReportDate, 120))
SELECT CTE.ProjectId,
CTE.ProjectName,
CTE.ProjectCode,
CTE.UnitTypeName,
CTE.YearMonth,
CTE.Totals,
CTE.MonthTotalPlanCompletedNum,
CTE.MonthTotalActCompletedNum,
SUM(CTE.MonthTotalPlanCompletedNum)
OVER (PARTITION BY CTE.ProjectId,CTE.UnitTypeName ORDER BY CTE.YearMonth ASC) AS AccumulatedPlanCompletedNum,
SUM(CTE.MonthTotalActCompletedNum)
OVER (PARTITION BY CTE.ProjectId,CTE.UnitTypeName ORDER BY CTE.YearMonth ASC) AS AccumulatedActCompletedNum
FROM CTE
WHERE CTE.RN <= (SELECT COUNT(*) FROM CTE)
;
go
--<EFBFBD><EFBFBD>ĿͼƬ
create view dbo.View_ProjectPictureReport as
select ProjectCode, ProjectName, Title, type.Name, AttachFile.AttachUrl, UploadDate
from InformationProject_Picture InFo
left join Base_Project project on InFo.ProjectId = project.ProjectId
left join Base_PictureType type on InFo.PictureType = type.PictureTypeId
left join AttachFile on InFo. PictureId = AttachFile.ToKeyId
where MenuType = 'Menu_HSSE'
and type.Name in ('<EFBFBD><EFBFBD>Ŀ<EFBFBD>ֳ<EFBFBD>ͼ', '<EFBFBD><EFBFBD>ĿЧ<EFBFBD><EFBFBD>ͼ')
go
--<EFBFBD>ֳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ
create view dbo.ProjectSitePersonNum as
SELECT
pro.ProjectName,
pro.ProjectCode,
COUNT(CASE WHEN Post.PostType IN ('1', '4') AND Person.IsForeign = 0 AND Punit.UnitType='1' and Unit.IsBuild = 0 THEN 1 END) AS GenManagerCount,--<EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COUNT(CASE WHEN Post.PostType IN ('1', '4') AND Person.IsForeign = 0 AND Punit.UnitType='2' and Unit.IsBuild = 0 THEN 1 END) AS ManagerSystemOutChinaCount,--<EFBFBD>ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COUNT(CASE WHEN Post.PostType IN ('1', '4') AND Person.IsForeign = 1 AND Punit.UnitType='2' and Unit.IsBuild = 0 THEN 1 END) AS ManagerSystemOutForeignCount,--<EFBFBD>ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COUNT(CASE WHEN Post.PostType IN ('1', '4') AND Person.IsForeign = 0 AND Punit.UnitType='2' and Unit.IsBuild = 1 THEN 1 END) AS ManagerSystemInChinaCount,--<EFBFBD>ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COUNT(CASE WHEN Post.PostType IN ('1', '4') AND Person.IsForeign = 1 AND Punit.UnitType='2' and Unit.IsBuild = 1 THEN 1 END) AS ManagerSystemInForeignCount,--<EFBFBD>ְ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COUNT(CASE WHEN Post.PostType IN ('2', '3') AND Person.IsForeign = 0 AND Punit.UnitType='2' and Unit.IsBuild = 0 THEN 1 END) AS OperManSystemOutChinaCount,--<EFBFBD>ְ<EFBFBD>ֱ<EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COUNT(CASE WHEN Post.PostType IN ('2', '3') AND Person.IsForeign = 1 AND Punit.UnitType='2' and Unit.IsBuild = 0 THEN 1 END) AS OperManSystemOutForeignCount,--<EFBFBD>ְ<EFBFBD>ֱ<EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COUNT(CASE WHEN Post.PostType IN ('2', '3') AND Person.IsForeign = 0 AND Punit.UnitType='2' and Unit.IsBuild = 1 THEN 1 END) AS OperManSystemInChinaCount,--<EFBFBD>ְ<EFBFBD>ֱ<EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COUNT(CASE WHEN Post.PostType IN ('2', '3') AND Person.IsForeign = 1 AND Punit.UnitType='2' and Unit.IsBuild = 1 THEN 1 END) AS OperManSystemInForeignCount,--<EFBFBD>ְ<EFBFBD>ֱ<EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(CASE
WHEN (select count(*) from RealName_SynchroSet where RealName_SynchroSet.UnitId='b4f3d912-ca6d-440c-a8d7-bc6a5d5a1f84' and proCode=pro.ContractNo)=1 THEN '<EFBFBD><EFBFBD>'
ELSE '<EFBFBD><EFBFBD>'
END) AS IsRealName
FROM
Base_Project pro
INNER JOIN SitePerson_Person AS Person ON pro.ProjectId = Person.ProjectId
INNER JOIN Base_Unit AS Unit ON Unit.UnitId = Person.UnitId
INNER JOIN Project_ProjectUnit as Punit on Unit.UnitId = Punit.UnitId
INNER JOIN Base_WorkPost AS Post ON Post.WorkPostId = Person.WorkPostId
WHERE
Post.PostType IN ('1', '2', '3', '4')
GROUP BY
pro.ProjectName, pro.ProjectCode,pro.ContractNo
go
--<EFBFBD>˹<EFBFBD>ʱ
create view dbo.View_DayReport as
WITH CTE AS (SELECT project.ProjectId,
project.ProjectName,
project.ProjectCode,
sysConst.ConstText AS UnitTypeName,
CONVERT(VARCHAR(7), CompileDate, 120) AS YearMonth,
SUM(x.PersonWorkTime) AS MonthTotalPersonWorkTime,
ROW_NUMBER() OVER (PARTITION BY project.ProjectId ORDER BY CONVERT(VARCHAR(7), CompileDate, 120) ASC) AS RN
FROM SitePerson_DayReportDetail x
LEFT JOIN SitePerson_DayReport a ON x.DayReportId = a.DayReportId
LEFT JOIN Base_Unit b ON x.UnitId = b.UnitId
LEFT JOIN Project_ProjectUnit ProUnit ON b.UnitId = ProUnit.UnitId
LEFT JOIN Sys_Const AS sysConst
ON sysConst.GroupId = 'ProjectUnitType' AND ProUnit.UnitType = sysConst.ConstValue
LEFT JOIN Base_Project project ON a.ProjectId = project.ProjectId
WHERE ProUnit.ProjectId = a.ProjectId
GROUP BY project.ProjectId,
project.ProjectName,
project.ProjectCode,
sysConst.ConstText,
CONVERT(VARCHAR(7), CompileDate, 120))
SELECT CTE.ProjectId,
CTE.ProjectName,
CTE.ProjectCode,
CTE.UnitTypeName,
CTE.YearMonth,
CTE.MonthTotalPersonWorkTime,
SUM(CTE.MonthTotalPersonWorkTime)
OVER (PARTITION BY CTE.ProjectId,CTE.UnitTypeName ORDER BY CTE.YearMonth ASC) AS AccumulatedPersonWorkTime
FROM CTE
WHERE CTE.RN <= (SELECT COUNT(*) FROM CTE)
;
go
--<EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD>
create view dbo.View_DayPersonReport as
WITH CTE AS (SELECT project.ProjectId,
project.ProjectName,
project.ProjectCode,
sysConst.ConstText AS UnitTypeName,
CONVERT(VARCHAR(7), CompileDate, 120) AS YearMonth,
SUM(x.RealPersonNum) AS MonthTotalPersonNum,
ROW_NUMBER() OVER (PARTITION BY project.ProjectId ORDER BY CONVERT(VARCHAR(7), CompileDate, 120) ASC) AS RN
FROM SitePerson_DayReportDetail x
LEFT JOIN SitePerson_DayReport a ON x.DayReportId = a.DayReportId
LEFT JOIN Base_Unit b ON x.UnitId = b.UnitId
LEFT JOIN Project_ProjectUnit ProUnit ON b.UnitId = ProUnit.UnitId
LEFT JOIN Sys_Const AS sysConst
ON sysConst.GroupId = 'ProjectUnitType' AND ProUnit.UnitType = sysConst.ConstValue
LEFT JOIN Base_Project project ON a.ProjectId = project.ProjectId
WHERE ProUnit.ProjectId = a.ProjectId
GROUP BY project.ProjectId,
project.ProjectName,
project.ProjectCode,
sysConst.ConstText,
CONVERT(VARCHAR(7), CompileDate, 120))
SELECT CTE.ProjectId,
CTE.ProjectName,
CTE.ProjectCode,
CTE.UnitTypeName,
CTE.YearMonth,
CTE.MonthTotalPersonNum,
SUM(CTE.MonthTotalPersonNum)
OVER (PARTITION BY CTE.ProjectId,CTE.UnitTypeName ORDER BY CTE.YearMonth ASC) AS AccumulatedPersonNum
FROM CTE
WHERE CTE.RN <= (SELECT COUNT(*) FROM CTE)
;
go
--<EFBFBD>ֳ<EFBFBD>HSE״̬<EFBFBD><EFBFBD><EFBFBD>¹ʱ<EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD>ƣ<EFBFBD>
create view dbo.View_HSSEAccidentReport as
with CTE AS (SELECT project.ProjectId,
project.ProjectName,
project.ProjectCode,
AccidentType.ConstText AS AccidentTypeName,
CONVERT(VARCHAR(7), ReportDate, 120) AS YearMonth,
count(a.AccidentReportId) AS MonthTotal,
ROW_NUMBER() OVER (PARTITION BY project.ProjectId ORDER BY CONVERT(VARCHAR(7), ReportDate, 120) ASC) AS RN
FROM Accident_AccidentReport a
LEFT JOIN Base_Project project ON a.ProjectId = project.ProjectId
LEFT JOIN Sys_Const AS AccidentType ON AccidentType.ConstValue = a.AccidentTypeId and
AccidentType.GroupId = 'AccidentReportRegistration'
GROUP BY project.ProjectId,
project.ProjectName,
project.ProjectCode,
CONVERT(VARCHAR(7), ReportDate, 120), AccidentType.ConstText)
SELECT CTE.ProjectId,
CTE.ProjectName,
CTE.ProjectCode,
CTE.YearMonth,
cte.AccidentTypeName,
CTE.MonthTotal,
SUM(CTE.MonthTotal)
OVER (PARTITION BY CTE.ProjectId,CTE.AccidentTypeName ORDER BY CTE.YearMonth ASC) AS Accumulated
FROM CTE
WHERE CTE.RN <= (SELECT COUNT(*) FROM CTE)
go
--<EFBFBD>ֳ<EFBFBD>HSE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
create view dbo.View_HSSECheckReport as
with Daily as (
SELECT project.ProjectId,
project.ProjectName,
project.ProjectCode,
'<EFBFBD><EFBFBD>ȫ<EFBFBD>ճ<EFBFBD>Ѳ<EFBFBD><EFBFBD>' AS CheckTypeName,
CONVERT(VARCHAR(7), CheckTime, 120) AS YearMonth,
count(Hazardreg.HazardRegisterId) AS MonthTotal,
ROW_NUMBER() OVER (PARTITION BY project.ProjectId ORDER BY CONVERT(VARCHAR(7), CheckTime, 120) ASC) AS RN
FROM HSSE_Hazard_HazardRegister Hazardreg
LEFT JOIN Base_Project project ON Hazardreg.ProjectId = project.ProjectId
GROUP BY project.ProjectId,
project.ProjectName,
project.ProjectCode,
CONVERT(VARCHAR(7), CheckTime, 120)),
CTE AS (SELECT project.ProjectId,
project.ProjectName,
project.ProjectCode,
(CASE
WHEN a.CheckType = '1' THEN 'ÿ<EFBFBD>ܰ<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN a.CheckType = '2' THEN 'ÿ<EFBFBD>°<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN a.CheckType = '3' THEN '<EFBFBD><EFBFBD>ǰ<EFBFBD>ں<EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN a.CheckType = '0' THEN 'ר<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
ELSE 'ר<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' END) AS CheckTypeName,
CONVERT(VARCHAR(7), CheckTime, 120) AS YearMonth,
count(a.CheckSpecialId) AS MonthTotal,
ROW_NUMBER() OVER (PARTITION BY project.ProjectId ORDER BY CONVERT(VARCHAR(7), CheckTime, 120) ASC) AS RN
FROM Check_CheckSpecial a
LEFT JOIN Base_Project project ON a.ProjectId = project.ProjectId
where a.CheckType in ('1','2','0')
GROUP BY project.ProjectId,
project.ProjectName,
project.ProjectCode,
CheckType,
CONVERT(VARCHAR(7), CheckTime, 120))
SELECT CTE.ProjectId,
CTE.ProjectName,
CTE.ProjectCode,
CTE.YearMonth,
cte.CheckTypeName,
CTE.MonthTotal,
SUM(CTE.MonthTotal)
OVER (PARTITION BY CTE.ProjectId,CTE.CheckTypeName ORDER BY CTE.YearMonth ASC) AS Accumulated
FROM CTE
WHERE CTE.RN <= (SELECT COUNT(*) FROM CTE)
union
SELECT Daily.ProjectId,
Daily.ProjectName,
Daily.ProjectCode,
Daily.YearMonth,
Daily.CheckTypeName,
Daily.MonthTotal,
SUM(Daily.MonthTotal)
OVER (PARTITION BY Daily.ProjectId,Daily.CheckTypeName ORDER BY Daily.YearMonth ASC) AS Accumulated
FROM Daily
WHERE Daily.RN <= (SELECT COUNT(*) FROM Daily)