DYNAMIC RESULT SETS 1
LANGUAGE SQL
 BEGIN
                         DECLARE crs CURSOR WITH RETURN FOR
					    SELECT DISTINCT
					            prg.ProgramID,
					            prg.ProgramName,
					            pth.PathStr,
					            os.StartRow,
					            CASE
					                WHEN pth.PathID = occ.PathID THEN 0
					                ELSE -1
					            END AS IsCopy
					     FROM IfInfo i
					          INNER JOIN OccurrencesStmt os ON i.OccurId = os.OccurID
					          INNER JOIN Paths pth ON os.PathID = pth.PathID
					          INNER JOIN
	                                    (
	                                         SELECT p.ProgramID,
								                    p.Ancestor,
												    p.ProgramTypeID,
												    p.OccurID,
													pa.AliasName AS ProgramName
								              FROM Programs p
								                   INNER JOIN ProgramAliases pa ON p.ProgramID = pa.ProgramId AND pa.AliasType = 0
								          ) prg ON os.ProgID = prg.ProgramID
					          INNER JOIN Occurrences occ ON prg.OccurID = occ.OccurID
					     WHERE (i.IfColumn <> i.ThenColumn OR i.IfColumn <> i.ElseColumn)
					          AND prg.ProgramTypeID = 1
					     ORDER BY prg.ProgramName,
					              pth.PathStr,
					              os.StartRow;

				        OPEN crs;
				
END	
