 @Input_datasetid integer, @dsMemberName VARCHAR(250)
 AS SELECT DISTINCT occurrenceposition.resourcefilepath, occurrenceposition.startrow, occurrenceposition.endrow, occurrenceposition.startcol, occurrenceposition.endcol, 
                      occurrenceposition.resourcetype, [jcldd].[ddid], [jclddref].[status], [jclddref].[membername], [jclddref].[normaldisposition], 
                      [jclddref].[abnormaldisposition], [jcldd].[ddname], [jobname], [jcljob].[jobid], [jclproc].[procname], [jclproc].[procid], [jclpgm].[pgmname], 
                      ProgramAliases.ProgramId, overrideposition.resourcefilepath, overrideposition.startrow, JobPosition.resourcefilepath, JobPosition.startrow, 
                      ProcPosition.ResourceFilePath, ProcPosition.StartRow, [jcldd].[StepID], jclStep.OrdinalNumInJob
 FROM         ((((((((((jclddref INNER JOIN
                      jcldd ON [jclddref].[ddid] = [jcldd].[ddid]) INNER JOIN
                      jclstep ON [jclddref].[stepid] = [jclstep].[stepid]) INNER JOIN
                      jclpgm ON [jclstep].[calledpgmid] = [jclpgm].[pgmid]) INNER JOIN
                      jcljob ON [jclddref].[jobid] = [jcljob].[jobid]) INNER JOIN
                      jclproc ON [jclddref].[procid] = [jclproc].[procid]) INNER JOIN
                      jclposition AS occurrenceposition ON occurrenceposition.positionid = [jcldd].[positionid]) INNER JOIN
                      jcldd AS overridingdd ON overridingdd.ddid = [jcldd].[overridingddid]) INNER JOIN
                      jclposition AS overrideposition ON overrideposition.positionid = overridingdd.positionid) INNER JOIN
                      JclPosition AS JobPosition ON JobPosition.PositionId = [JclJob].[PositionID]) INNER JOIN
                      JclPosition AS ProcPosition ON ProcPosition.PositionID = [JclProc].[PositionID]) LEFT JOIN
                      ProgramAliases ON [jclpgm].[pgmname] = ProgramAliases.AliasName
 WHERE     [jclddref].[datasetid] = @Input_datasetid 
 		and ( ([jclddref].[membername] = @dsMemberName)) and jcljob.BuildStatus=1
 UNION
 --handle joblib statements. note that ordinalNumInJob is marked special, as -1
 SELECT     occurrenceposition.resourcefilepath, occurrenceposition.startrow, occurrenceposition.endrow, occurrenceposition.startcol, occurrenceposition.endcol, 
                      occurrenceposition.resourcetype, [jcldd].[ddid], [jclddref].[status], [jclddref].[membername], [jclddref].[normaldisposition], 
                      [jclddref].[abnormaldisposition], [jcldd].[ddname], [jobname], [jcljob].[jobid], NULL, 0, NULL, 0, NULL, 0, JobPosition.resourcefilepath, 
                      JobPosition.startrow, NULL, 0, [jcldd].[StepID], -1 as OrdinalNumInJob
 FROM         ((((jclddref INNER JOIN
                      jcldd ON jclddref.ddid = jcldd.ddid) INNER JOIN
                      jcljob ON jclddref.jobid = jcljob.jobid) INNER JOIN
                      jclposition AS occurrenceposition ON occurrenceposition.positionid = jcldd.positionid) INNER JOIN
                      JclPosition AS JobPosition ON JobPosition.PositionId = JclJob.PositionID)
 WHERE     jclddref.datasetid = @Input_datasetid 
 		and (([jclddref].[membername] = @dsMemberName))
 		AND jcldd.stepid = 0 and jcljob.BuildStatus=1
