I was actually just working on something similar that I found from a post from a couple of years ago. NCM Poloicy Violations Report - SQL Reporting Services Version
I am pretty sure that query, on that other post, was made well before several database changes.
I was able to rebuild it and get it working for me.
SELECT TOP 100 [SWNPMDB].[dbo].[NodesData].[Caption], [SWNPMDB].[dbo].[NCM_PolicyCacheResults].[ReportName], [SWNPMDB].[dbo].[NCM_PolicyCacheResults].[RuleName],
SUM(CASE errorLevel WHEN 0 THEN 1 ELSE 0 END) AS Info,
SUM(CASE errorLevel WHEN 1 THEN 1 ELSE 0 END) AS Warnings,
SUM(CASE errorLevel WHEN 2 THEN 1 ELSE 0 END) AS Critical
FROM [SWNPMDB].[dbo].[NCM_PolicyCacheResults] INNER JOIN [SWNPMDB].[dbo].[NCM_ConfigArchive] ON [SWNPMDB].[dbo].[NCM_PolicyCacheResults].[ConfigID] = [SWNPMDB].[dbo].[NCM_ConfigArchive].[ConfigID] INNER JOIN [SWNPMDB].[dbo].[NCM_NodeProperties] ON [SWNPMDB].[dbo].[NCM_NodeProperties].[NodeID] = [SWNPMDB].[dbo].[NCM_PolicyCacheResults].[NodeID] INNER JOIN [SWNPMDB].[dbo].[NodesData] ON [SWNPMDB].[dbo].[NodesData].[NodeID] = [SWNPMDB].[dbo].[NCM_NodeProperties].[CoreNodeID]
WHERE [SWNPMDB].[dbo].[NCM_PolicyCacheResults].[IsViolation] = 1 AND ([SWNPMDB].[dbo].[NCM_PolicyCacheResults].[ReportName] = 'Occam_Profiles_STANDARD_And_BASIC')
GROUP BY [SWNPMDB].[dbo].[NCM_PolicyCacheResults].[ReportName], [SWNPMDB].[dbo].[NCM_PolicyCacheResults].[RuleName], [SWNPMDB].[dbo].[NCM_PolicyCacheResults].[ReportID], [SWNPMDB].[dbo].[NodesData].[Caption] ORDER BY [SWNPMDB].[dbo].[NCM_PolicyCacheResults].[RuleName]