Files
xinjiang/DataBase/版本日志/SGGLDB_V2026-09-21-xiaj(Sp_HazardFactor_Statistics).sql
T

36 lines
1.2 KiB
Transact-SQL
Raw Normal View History

2026-09-23 17:55:18 +08:00
CREATE OR ALTER PROCEDURE [dbo].[Sp_HazardFactor_Statistics]
@year NVARCHAR(20)=NULL,
@month NVARCHAR(20)=NULL,
@unitId NVARCHAR(200)=NULL,
@projectId NVARCHAR(200)=NULL
AS
BEGIN
SET NOCOUNT ON;
WITH CTE AS (
SELECT
ROW_NUMBER() OVER (
PARTITION BY tba.Year,tba.Month,tba.WorkPlace,tba.JobStep,tba.Hazard,tba.Consequence,tba.Illegality,
tba.BaseRiskSeverity,tba.BaseRiskProbability,tba.BaseRiskScore,tba.BaseRiskLevel,tba.BaseRiskAcceptabity,
tba.NetRiskControlMeasures,tba.NetRiskSeverity,tba.NetRiskProbability,tba.NetRiskScore,tba.NetRiskLevel,
tba.NetRiskAcceptabity,tba.AdditionalControlMeasures
ORDER BY CompileDate desc
) as rn,
--tbb.ProjectName,
tba.BaseRiskLevel
FROM HazardFactor_Safety AS tba WITH(NOLOCK)
--LEFT JOIN Base_Project AS tbb WITH(NOLOCK) ON tbb.ProjectId = tba.ProjectId
WHERE 1=1
AND tba.State = 1
AND tba.Year = @year
AND tba.Month = @month
--单位条件:@unitId为空查所有,有值则过滤单位
AND (@unitId IS NULL OR @unitId = '' OR tba.UnitId = @unitId)
--项目条件:为空不过滤
AND (@projectId IS NULL OR @projectId = '' OR tba.ProjectId = @projectId)
)
SELECT BaseRiskLevel AS Title,COUNT(1) AS Num
FROM CTE
WHERE rn = 1
GROUP BY BaseRiskLevel
END