DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN
            
            
            DECLARE crs CURSOR WITH RETURN FOR
            SELECT DISTINCT
				    prgAlsxyz.ProgramID,
		            prgAlsxyz.AliasName AS ProgramName,
		            pth.PathStr,
		            os1.StartRow,
		            CASE
		                WHEN pth.PathID = occ.PathID
		                THEN 0
		                ELSE -1
		            END AS IsCopy
		     FROM OccurrencesStmt os1
		          INNER JOIN Paths pth ON os1.PathID = pth.PathID
		          INNER JOIN OccurrencesStmt os2 ON os1.OccurID <> os2.OccurID
		                                            AND os1.PathID = os2.PathID
		                                            AND os1.StartRow = os2.StartRow
		                                            AND os1.StartCol < os2.StartCol
		          INNER JOIN Programs prg ON os1.ProgID = prg.ProgramID
		          INNER JOIN Occurrences occ ON prg.OccurID = occ.OccurID
				  INNER JOIN ProgramAliases prgAlsxyz ON prg.ProgramId = prgAlsxyz.ProgramID
					AND prgAlsxyz.AliasType = 0
			 WHERE prg.ProgramTypeID = 1
		     ORDER BY prgAlsxyz.AliasName,
		              pth.PathStr,
		              os1.StartRow;
            

            OPEN crs;
            
 END ss	
 
 
 
