DYNAMIC RESULT SETS 1
LANGUAGE SQL
 BEGIN
                         DECLARE crs CURSOR WITH RETURN FOR
					     SELECT *
					     FROM
					         (
					                 SELECT	 prgAlsxyz.ProgramID,
					           			    prgAlsxyz.AliasName AS ProgramName,
								            pth.PathStr,
								            occ1.StartRow,
								            CASE
								                WHEN pth.PathID = occ1.PathID
								                THEN 0
								                ELSE -1
								            END AS IsCopy
								     FROM ProgramElements pe
								          INNER JOIN Occurrences occ1 ON pe.OccurId = occ1.OccurID
								          INNER JOIN Programs prg ON pe.ProgId = prg.ProgramID
								          INNER JOIN Paths pth ON occ1.PathID = pth.PathID
								          INNER JOIN Occurrences occ2 ON prg.OccurID = occ2.OccurID
										  INNER JOIN ProgramAliases prgAlsxyz ON prg.ProgramId = prgAlsxyz.ProgramID
											AND prgAlsxyz.AliasType = 0
									 WHERE pe.ElementType IN (1, 2, 3, 4)
								          AND prg.ProgramTypeID = 1
								          AND occ1.StartCol <> 8
								
								     UNION
								     SELECT DISTINCT
					           			prgAlsxyz.ProgramID,
					            			prgAlsxyz.AliasName AS ProgramName,
								            pth.PathStr,
								            occ2.StartRow,
								            CASE
								                WHEN pth.PathID = occ1.PathID
								                THEN 0
								                ELSE -1
								            END AS IsCopy
								     FROM Paths pth
								          INNER JOIN Occurrences occ2 ON pth.PathID = occ2.PathID
										INNER JOIN Sections ON occ2.OccurID = Sections.OccurID
										INNER JOIN Programs prg ON prg.ProgramID = Sections.ProgramID
								          INNER JOIN Occurrences occ1 ON prg.OccurID = occ1.OccurID
										  INNER JOIN ProgramAliases prgAlsxyz ON prg.ProgramId = prgAlsxyz.ProgramID
											AND prgAlsxyz.AliasType = 0
									 WHERE prg.ProgramTypeID = 1
								          AND occ2.StartCol <> 8
								
									UNION
								     SELECT DISTINCT prgAlsxyz.ProgramID,
					            			           prgAlsxyz.AliasName AS ProgramName,
								                     pth.PathStr,
								                     occ2.StartRow,
								                    CASE
								                        WHEN pth.PathID = occ1.PathID
								                        THEN 0
								                        ELSE -1
								                    END AS IsCopy
								     FROM Paths pth
								          INNER JOIN Occurrences occ2 ON pth.PathID = occ2.PathID
								          INNER JOIN Paragraphs par ON occ2.OccurID = par.OccurID
								          INNER JOIN Programs prg ON par.ProgramID = prg.ProgramID
										INNER JOIN Occurrences occ1 ON occ1.OccurID = prg.OccurID
										  INNER JOIN ProgramAliases prgAlsxyz ON prg.ProgramId = prgAlsxyz.ProgramID
											AND prgAlsxyz.AliasType = 0
									 WHERE prg.ProgramTypeID = 1
								          AND occ2.StartCol <> 8
								          AND par.ParaName NOT LIKE '%_FIRST_SENTENCES'
					
					
					         ) s
					      ORDER BY s.ProgramName, s.PathStr, s.StartRow;
					
				         OPEN crs;
				
END	
