DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN

	            BEGIN
					    DECLARE crs CURSOR WITH RETURN FOR
						 SELECT *
					     FROM
					     (
					         SELECT 
					                pa.AliasName AS Name,
					                pth.PathStr AS path,
					                pt.ProgramType
					         FROM StatementReference sr
					                 INNER JOIN OccurrencesStmt os ON sr.OccurID = os.OccurID
					                 INNER JOIN Programs prg ON os.ProgID = prg.ProgramID
									 INNER JOIN ProgramAliases pa ON prg.ProgramID = pa.ProgramId AND pa.AliasType = 0
					                 INNER JOIN Occurrences occ ON prg.OccurID = occ.OccurID
					                 INNER JOIN Paths pth ON occ.PathID = pth.PathID
					                 INNER JOIN ProgramTypes pt ON prg.ProgramTypeID = pt.ProgramTypeID
					         WHERE    sr.ResourceID IN (SELECT * FROM SESSION.numeric_param_temp) AND 
							         (sr.ResourceType = 4 OR sr.ResourceType = 97)
							         AND sr.StatementType > 185
                                     AND sr.StatementType < 227
					              AND (prg.ancestor IS NULL OR prg.ancestor = '')
					
					
					         UNION
							 
					         SELECT 
					                prg.ancestor || ': ' || pa.AliasName AS name,
					                pth.PathStr AS path,
					                pt.ProgramType
					         FROM StatementReference sr
					                 INNER JOIN OccurrencesStmt os ON sr.OccurID = os.OccurID
					                 INNER JOIN Programs prg ON os.ProgID = prg.ProgramID
					                 INNER JOIN ProgramAliases pa ON prg.ProgramID = pa.ProgramId AND pa.AliasType = 0
									 INNER JOIN Occurrences occ ON prg.OccurID = occ.OccurID
					                 INNER JOIN Paths pth ON occ.PathID = pth.PathID
					                 INNER JOIN ProgramTypes pt ON prg.ProgramTypeID = pt.ProgramTypeID
					         WHERE    sr.ResourceID IN (SELECT * FROM SESSION.numeric_param_temp) AND 
							        (sr.ResourceType = 4 OR sr.ResourceType = 97)
							        AND sr.StatementType > 185
                                    AND sr.StatementType < 227 
					                AND (prg.ancestor IS NOT NULL AND prg.ancestor <> '')
					
					     ) AS t
					     ORDER BY t.name,
					              t.path;
						
				         OPEN crs;
				
                END;
END ss	


