报表服务器审查



我正在研究SQL中报表设计器的标准安装,我想对报表及其用法进行一些分析。

我找到了一个视图[ReportServer]。[dbo]。[ExecutionLog],并将其链接到"我的目录"以查看报告的名称和运行次数。

我正在努力寻找两样东西。正在使用的报告(带计数(和未使用的报告。

以下查询是否正确?第二个没有返回任何行,这感觉非常错误。

SELECT 
COUNT([ReportID]) as [Reports Run]
,[UserName]
,C.[Name]
FROM [ReportServer].[dbo].[ExecutionLog] E Left Join [ReportServer].[dbo].[Catalog] C on C.[ItemID] = E.[ReportID] 
Where
E.[TimeStart] > (SELECT dateadd(month, -3, getdate()))
Group by  
[UserName]
,[ReportID]
,C.[Name]

Select *, [Name] from [ReportServer].[dbo].[Catalog] C WHERE [Name] not in (Select [Name] FROM [ReportServer].[dbo].[ExecutionLog]) 

根据您的评论,您可以获得目录中的每个项目在过去三个月内在executionlog中被引用的次数,如果没有引用,则为0

SELECT C.[ItemID],
SUM(CASE WHEN E.[TimeStart] > DATEADD(MONTH, -3, getdate()) THEN 1 ELSE 0 END) as times_in_3_months
FROM [ReportServer].[dbo].[Catalog] C LEFT JOIN
[ReportServer].[dbo].[ExecutionLog] E Left Join  
ON C.[ItemID] = E.[ReportID] 
GROUP BY C.[ItemID];

最新更新