DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN

	            BEGIN
              
					     DECLARE crs CURSOR WITH RETURN FOR	      
					     SELECT * 
						      FROM
						      (
						      
								       SELECT	 prgAlsxyz.ProgramID,
									            prgAlsxyz.AliasName AS ProgramName,
									            pth.PathStr,
									            1 AS StartRow,
									            0 AS IsCopy
									     FROM Programs prg
									          INNER JOIN Occurrences occ ON prg.OccurID = occ.OccurID
									          INNER JOIN Paths pth ON occ.PathID = pth.PathID
											  INNER JOIN ProgramAliases prgAlsxyz ON prg.ProgramId = prgAlsxyz.ProgramID
												AND prgAlsxyz.AliasType = 0
										 WHERE prg.ProgramID NOT IN 
									              (
									                  SELECT DISTINCT
									                         prg1.ProgramID
									                  FROM Programs prg1
									                       INNER JOIN OccurrencesStmt os  ON prg1.ProgramID = os.ProgID
													  WHERE os.StatementType = 21
									              )
									            AND prg.ProgramID IN (SELECT * FROM SESSION.numeric_param_temp)
									
									    
									     UNION
									     SELECT	 prgAlsxyz.ProgramID,
					 				            prgAlsxyz.AliasName AS ProgramName,
									            pth.PathStr,
									            os.StartRow,
									            CASE
									                WHEN pth.PathID = occ.PathID
									                THEN 0
									                ELSE-1
									            END AS IsCopy
									     FROM Paragraphs
									          INNER JOIN Sections s ON Paragraphs.SectionID =s.SectionID
											INNER JOIN Programs prg ON s.ProgramID = prg.ProgramID 
											INNER JOIN OccurrencesStmt os ON Paragraphs.ParaID = os.ParaID
											INNER JOIN Paths pth ON pth.PathID = os.PathID
									          INNER JOIN Occurrences occ ON prg.OccurID = occ.OccurID
											  INNER JOIN ProgramAliases prgAlsxyz ON prg.ProgramId = prgAlsxyz.ProgramID
												AND prgAlsxyz.AliasType = 0
										 WHERE os.StatementType = 21
									          AND s.Successor > 1
									          AND prg.ProgramID IN (SELECT * FROM SESSION.numeric_param_temp)
									          )src
								     ORDER BY src.ProgramName,
								              src.PathStr;
							           
							    

						            
 
				        OPEN crs;
				
                END;
 		           
END ss	




