DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: 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 ss	




