DYNAMIC RESULT SETS 1
LANGUAGE SQL
BEGIN

	            BEGIN

					    DECLARE crs CURSOR WITH RETURN FOR	
						SELECT DISTINCT
					            jpds.DataSetName,
					            pa.ProgramName,
					            pa.ProgramID,
					            jd.DDName,
					            pa.OccurId,
					            jpds.DataSetID,
								pth.PathStr
					     FROM JCLPhysicalDataSet jpds
					          INNER JOIN JCLDDRef jr ON jpds.DataSetID = jr.DataSetID
					          INNER JOIN JCLStep js ON jr.StepID = js.StepID
					          INNER JOIN JCLPgm jpgm ON js.CalledPgmID = jpgm.PgmID
							  LEFT OUTER JOIN ProgramAliases pga ON jpgm.PgmName = pga.AliasName
					          LEFT OUTER JOIN   (
													SELECT DISTINCT
														 p.ProgramID,
														 p.Ancestor,
														 pa.AliasName AS ProgramName,
														 p.OccurID,
														 p.ProgramTypeID
													FROM Programs p
														INNER JOIN ProgramAliases pa ON p.ProgramID = pa.ProgramId AND pa.AliasType = 0
												) pa ON pga.ProgramID = pa.ProgramID
							  INNER JOIN JCLDD jd ON jr.DDID = jd.DDID
					          INNER JOIN SESSION.ds_param_temp dpt ON jpds.DataSetID = dpt.dsid
                                   AND jr.MemberName = dpt.dsmembername
						      LEFT OUTER JOIN
											  (
												 SELECT 1 AS Flag,
													   prax.AliasName,
													   prgx.ProgramTypeID
												 FROM Programs prgx
													 INNER JOIN ProgramAliases prax ON prgx.ProgramID = prax.ProgramId AND prax.AliasType = 0
												 GROUP BY prax.AliasName,
														prgx.ProgramTypeID
												 HAVING COUNT(*) > 1
											  ) x ON pa.ProgramName = x.AliasName AND pa.ProgramTypeID = x.ProgramTypeID
								LEFT OUTER JOIN Occurrences occ ON occ.OccurID = pa.OccurID
								LEFT OUTER JOIN Paths pth ON pth.PathID = occ.PathID AND x.Flag = 1
						WHERE EXISTS ( SELECT 1
						               FROM SESSION.ds_param_temp f
						               WHERE jpds.DataSetID = f.dsid
						             )		
					     ORDER BY jd.DDName,
					              pa.ProgramName;
						

                         OPEN crs;

                  END;
 END 
