AS 
set NOCOUNT ON;
IF OBJECT_ID('tempdb..#programWithAlias') IS NOT NULL DROP TABLE #programWithAlias
			 SELECT Programs.ProgramID, pa.AliasName AS ProgramName, Programs.ProgramTypeID
			 INTO #programWithAlias 
			 FROM  dbo.Programs INNER JOIN dbo.ProgramAliases pa  ON Programs.ProgramID = pa.ProgramId and pa.AliasType = 0

SELECT TOP 100 PERCENT Programs_2.ProgramName AS LogicalView, Programs_1.ProgramName AS ProgramName, 
                    Statements.Description AS SMARTStatementType, Count(OccurrencesStmt.OccurID) AS
               stmtCount
FROM         #programWithAlias Programs_2 INNER JOIN (
                     #programWithAlias Programs_1 INNER JOIN (
                     StatementReference INNER JOIN (
                     Statements INNER JOIN
                                OccurrencesStmt ON Statements.StatementType = OccurrencesStmt.StatementType 
                               ) ON  StatementReference.OccurID = OccurrencesStmt.OccurID
                           ) ON Programs_1.ProgramID =OccurrencesStmt.ProgID 
                     ) ON  Programs_2.ProgramID = StatementReference.ResourceID
WHERE   ( (StatementReference.ResourceType = 5) 
                AND (Programs_2.ProgramTypeID = 4)                
        )
group BY Programs_2.ProgramName, Programs_1.ProgramName, Statements.Description
ORDER BY Programs_2.ProgramName, Programs_1.ProgramName