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)
GROUP BY Resources.Name, p.AncestorName, p.ProgramName, Paths.PathStr   
ORDER BY Resources.Name, p.AncestorName, p.ProgramName, Paths.PathStr 