AS set NOCOUNT ON;
IF OBJECT_ID('tempdb..#programWithAncestor') IS NOT NULL DROP TABLE #programWithAncestor
			 SELECT * INTO #programWithAncestor 
			 FROM   fGetProgram_Ancestor_Aliases (NULL)

SELECT MQQueues.QueueName, p.ProgramName AS ProgramName, Statements.Description, COUNT(OccurrencesStmt.OccurID) AS StmtCOUNT, Paths.PathStr
FROM         ((((StatementReference INNER JOIN
                      MQQueues ON StatementReference.ResourceID = MQQueues.QueueID) INNER JOIN
                      OccurrencesStmt ON StatementReference.OccurID = OccurrencesStmt.OccurID) INNER JOIN
                      #programWithAncestor p ON OccurrencesStmt.ProgID = p.ProgramID) INNER JOIN
                      Statements ON StatementReference.StatementType = Statements.StatementType)
		LEFT JOIN ( SELECT 1 AS Flag, p1.ProgramName, p1.ProgramTypeID	FROM  Programs p1
					GROUP BY p1.ProgramName, p1.ProgramTypeID 	  HAVING COUNT(*) > 1) f 
					on p.ProgramName = f.ProgramName and p.ProgramTypeID = f.ProgramTypeID
		LEFT JOIN Occurrences on p.OccurID = Occurrences.OccurID
		LEFT JOIN dbo.Paths ON Paths.PathID = Occurrences.PathID AND f.Flag = 1
WHERE     (StatementReference.ResourceType = 81) AND (MQQueues.QueueName in (Select * from #string_param_temp))
GROUP BY MQQueues.QueueName, p.ProgramName, Statements.Description, Paths.PathStr
ORDER BY MQQueues.QueueName, p.ProgramName, Paths.PathStr 