DYNAMIC RESULT SETS 1
LANGUAGE SQL
BEGIN



	            BEGIN
					             DECLARE crs CURSOR WITH RETURN FOR
								 SELECT prg.ProgramName,
							            res.Name AS DBITable,
							            st.Description,
							            acc.pattern AS DBIPattern,
							            COUNT(os.OccurID) AS stmtCount,
										prg.ProgramID
							     FROM StatementReference sr
							          INNER JOIN OccurrencesStmt os ON sr.OccurID = os.OccurID
							          INNER JOIN Statements st ON os.StatementType = st.StatementType
							          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
														WHERE p.ProgramTypeID = 1
							                                 AND p.ProgramID IN (SELECT * FROM SESSION.numeric_param_temp)
														
													) prg ON os.ProgID = prg.ProgramID
							          INNER JOIN Resources res ON sr.ResourceID = res.ResourceID
							                                      AND sr.ResourceType = 190
							          LEFT OUTER JOIN
												(
												    SELECT ar.Name AS pattern,
														 asr.occurid AS occid
												    FROM StatementReference AS asr
													    INNER JOIN Resources AS ar ON asr.ResourceID = ar.ResourceID
																				   AND asr.ResourceType = 191
												) AS acc ON acc.occid = os.OccurID
							     GROUP BY prg.ProgramName,
							              res.Name,
							              st.Description,
							              acc.pattern,
										  prg.ProgramID
							     ORDER BY prg.ProgramName,
								          prg.ProgramID,
							              res.Name,
							              st.Description,
							              acc.pattern;
								 OPEN crs;
				
                END;
END	
