AS SELECT 
 Resources.Name,  
 ProgramAliases.AliasName As ProgramName, 
 Statements.Description,
 Count(OccurrencesStmt.OccurID) AS stmtCount, 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 Resources ON StatementReference.ResourceID = Resources.ResourceID
		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=189 AND Resources.OccurID<>-1 AND Programs.ProgramTypeID = 1
GROUP BY Resources.Name, ProgramAliases.AliasName, Statements.Description, Paths.PathStr
ORDER BY Resources.Name, ProgramAliases.AliasName, Paths.PathStr, Statements.Description