AS SELECT 
 Resources.Name as DBITable,
 acc.pattern as DBIPattern,
 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 ProgramAliases.ProgramId = Programs.ProgramID and ProgramAliases.AliasType = 0
      INNER JOIN Resources ON StatementReference.ResourceID = Resources.ResourceID and StatementReference.ResourceType = 190
      left join (
         select ar.Name AS pattern, asr.occurid as occid from StatementReference as asr
          INNER JOIN Resources as ar ON asr.ResourceID = ar.ResourceID and asr.ResourceType = 191
       ) as acc on acc.occid = OccurrencesStmt.OccurID 
	   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 Occurrences on Programs.OccurID = Occurrences.OccurID
		LEFT JOIN dbo.Paths ON Paths.PathID = Occurrences.PathID AND f.Flag = 1
where Programs.ProgramTypeID = 1
GROUP BY Resources.Name, acc.pattern, ProgramAliases.AliasName, Statements.Description, Paths.PathStr
ORDER BY Resources.Name, acc.pattern, ProgramAliases.AliasName, Paths.PathStr, Statements.Description