DYNAMIC RESULT SETS 1
LANGUAGE SQL
 BEGIN

					    DECLARE crs CURSOR WITH RETURN FOR
						SELECT  pgm.ProgramName,
					            par.ParaName AS ProcedureName,
					            pth.PathStr AS SourceFileName,
					            res.Name AS IncludeName,
					            occ.StartRow AS Line,
					            par.NumOfStatements AS NumOfStmts,
								pgm.ProgramID
					     FROM Occurrences AS Occurrences_1
					          INNER JOIN Occurrences occ ON Occurrences_1.PathID = occ.PathID
							  INNER JOIN Paragraphs par ON par.OccurID = occ.OccurID
							  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
											) pgm ON par.ProgramID = pgm.ProgramID							
					          INNER JOIN Paths pth ON occ.PathID = pth.PathID
					          LEFT OUTER JOIN Resources res ON Occurrences_1.OccurID = res.OccurID
					     WHERE par.OrdinalNum <> 1
					           AND par.IsExitPara = 0
					           AND par.ParaID NOT IN
													   (
														  SELECT  par1.ParaID
														  FROM Paragraphs par1
															  INNER JOIN StatementReference sr ON par1.ParaID = sr.ResourceID
														  WHERE sr.ResourceType = 2
													   )
					           AND Occurrences_1.ResourceType IN ( 5, 13, 60, 67)
					           AND pgm.ProgramTypeID NOT IN (1, 9)
					     ORDER BY pgm.ProgramName,
						          pgm.ProgramID,
					              res.Name,
					              par.ParaName;
					

				        OPEN crs;
				

END	
