AS select * from (
SELECT DISTINCT  ProgramAliases.AliasName as name, Paths.PathStr as path, ProgramTypes.ProgramType
FROM ((((StatementReference INNER JOIN OccurrencesStmt ON StatementReference.OccurID = OccurrencesStmt.OccurID) INNER JOIN Programs ON OccurrencesStmt.ProgID = Programs.ProgramID INNER JOIN ProgramAliases ON Programs.ProgramID = ProgramAliases.ProgramId and ProgramAliases.AliasType = 0) INNER JOIN Occurrences ON Programs.OccurID = Occurrences.OccurID) INNER JOIN Paths ON Occurrences.PathID = Paths.PathID) INNER JOIN ProgramTypes ON Programs.ProgramTypeID = ProgramTypes.ProgramTypeID
WHERE ( StatementReference.ResourceID IN (select ProgramID from #numeric_param_temp) )
	AND (StatementReference.ResourceType=4 OR StatementReference.ResourceType=97)
	AND StatementReference.StatementType > 185 AND StatementReference.StatementType < 227 
	and (programs.ancestor is null or programs.ancestor = '')
GROUP BY ProgramAliases.AliasName, Paths.PathStr, ProgramTypes.ProgramType
UNION
SELECT DISTINCT  Programs.ancestor + ': ' + ProgramAliases.AliasName as name, Paths.PathStr as path, ProgramTypes.ProgramType
FROM ((((StatementReference INNER JOIN OccurrencesStmt ON StatementReference.OccurID = OccurrencesStmt.OccurID) INNER JOIN Programs ON OccurrencesStmt.ProgID = Programs.ProgramID INNER JOIN ProgramAliases ON Programs.ProgramID = ProgramAliases.ProgramId and ProgramAliases.AliasType = 0) INNER JOIN Occurrences ON Programs.OccurID = Occurrences.OccurID) INNER JOIN Paths ON Occurrences.PathID = Paths.PathID) INNER JOIN ProgramTypes ON Programs.ProgramTypeID = ProgramTypes.ProgramTypeID
WHERE ( StatementReference.ResourceID IN (select ProgramID from #numeric_param_temp) )
	AND (StatementReference.ResourceType=4 OR StatementReference.ResourceType=97)
	AND StatementReference.StatementType > 185 AND StatementReference.StatementType < 227 
	and (programs.ancestor is not null and programs.ancestor <> '')
GROUP BY  Programs.ancestor, ProgramAliases.AliasName, Paths.PathStr, ProgramTypes.ProgramType
) as t order by t.name, t.path
