AS SELECT DatacomTables.TableName,  
 ProgramAliases.AliasName AS ProgramName, 
 Statements.Description,
 Count(OccurrencesStmt.OccurID) AS stmtCount, Programs.Ancestor, Paths.PathStr
FROM (
          (
             (
              StatementReference INNER JOIN OccurrencesStmt ON StatementReference.OccurID = OccurrencesStmt.OccurID
             ) INNER JOIN Statements ON OccurrencesStmt.StatementType = Statements.StatementType
          ) INNER JOIN Programs ON OccurrencesStmt.ProgID = Programs.ProgramID
		  INNER JOIN ProgramAliases ON Programs.ProgramID = ProgramAliases.ProgramId and ProgramAliases.AliasType = 0
        ) INNER JOIN DatacomTables ON StatementReference.ResourceID = DatacomTables.ID
		LEFT JOIN ( SELECT 1 AS Flag, p1.ProgramName, p1.ProgramTypeID	FROM  Programs p1
					GROUP BY p1.ProgramName, p1.ProgramTypeID 	  HAVING COUNT(*) > 1) f 
					on Programs.ProgramName = f.ProgramName and Programs.ProgramTypeID = f.ProgramTypeID
		LEFT JOIN dbo.Paths ON Paths.PathID = OccurrencesStmt.PathID AND f.Flag = 1
WHERE (((StatementReference.ResourceType)=182))
GROUP BY DatacomTables.TableName, Programs.Ancestor, ProgramAliases.AliasName, Statements.Description, Paths.PathStr
ORDER BY DatacomTables.TableName, Programs.Ancestor, ProgramAliases.AliasName, Paths.PathStr, Statements.Description