AS SELECT DISTINCT JCLPhysicalDataSet.DataSetName, pa.ProgramName, pa.ProgramID, JCLDD.DDName, pa.OccurId, JCLPhysicalDataSet.DataSetID, pth.PathStr 
FROM JCLPhysicalDataSet INNER JOIN
      JCLDDRef ON JCLPhysicalDataSet.DataSetID = JCLDDRef.DataSetID INNER JOIN
      JCLStep ON JCLDDRef.StepID = JCLStep.StepID INNER JOIN
      JCLPgm ON JCLStep.CalledPgmID = JCLPgm.PgmID LEFT JOIN
      ProgramAliases ON JCLPgm.PgmName = ProgramAliases.AliasName LEFT JOIN
	  (SELECT Programs.ProgramID, Programs.OccurID, ProgramAliases.AliasName AS ProgramName, Programs.ProgramTypeID FROM Programs INNER JOIN ProgramAliases ON Programs.ProgramID = ProgramAliases.ProgramId and ProgramAliases.AliasType = 0) pa
	  ON ProgramAliases.ProgramId = pa.ProgramID INNER JOIN
      JCLDD ON JCLDDRef.DDID = JCLDD.DDID INNER JOIN
      #ds_param_temp ON JCLPhysicalDataSet.DataSetID=#ds_param_temp.dsid AND JCLDDRef.MemberName=#ds_param_temp.dsmembername
      LEFT JOIN ( SELECT 1 AS Flag, AliasName, ProgramTypeID	FROM dbo.Programs  INNER JOIN dbo.ProgramAliases
		 					ON Programs.ProgramID = ProgramAliases.ProgramId and ProgramAliases.AliasType = 0
						    GROUP BY AliasName, ProgramTypeID 	    HAVING COUNT(*) > 1) f 
							on pa.ProgramName = f.AliasName and pa.ProgramTypeID = f.ProgramTypeID
						LEFT JOIN Occurrences occ ON occ.OccurID = pa.OccurID
						LEFT JOIN dbo.Paths pth ON pth.PathID = occ.PathID AND f.Flag = 1
ORDER BY JCLDD.DDName, pa.ProgramName
