AS set NOCOUNT ON;

IF OBJECT_ID('tempdb..#programWithAncestor') IS NOT NULL DROP TABLE #programWithAncestor
			 SELECT *
			 INTO #programWithAncestor 
			 FROM   fGetProgram_Ancestor_Aliases (NULL)
			 
SELECT 
	Resources.Name AS [Include File Name], 
	p.ProgramName, 
	Count(p.ProgramName) AS Expr1, p.AncestorName, Paths.PathStr
FROM ((StatementReference INNER JOIN OccurrencesStmt ON StatementReference.OccurID=OccurrencesStmt.OccurID) 
 INNER JOIN #programWithAncestor p ON OccurrencesStmt.ProgID = p.ProgramID) 
 INNER JOIN Resources ON StatementReference.ResourceID=Resources.ResourceID 
 LEFT JOIN ( SELECT 1 AS Flag, ProgramName, ProgramTypeID	FROM #programWithAncestor
					GROUP BY ProgramName, ProgramTypeID 	  HAVING COUNT(*) > 1) f 
					on p.ProgramName = f.ProgramName and p.ProgramTypeID = f.ProgramTypeID
 LEFT JOIN dbo.Paths ON Paths.PathID = OccurrencesStmt.PathID AND f.Flag = 1
WHERE StatementReference.ResourceType IN (13, 57, 60, 67,99)
	AND (Resources.Name in (Select * from #string_param_temp))
GROUP BY Resources.Name, p.AncestorName, p.ProgramName, Paths.PathStr  
ORDER BY Resources.Name, p.AncestorName, p.ProgramName, Paths.PathStr