DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN           

	            BEGIN
						DECLARE crs CURSOR WITH RETURN FOR
						SELECT  DISTINCT
						        r.Name,
					            prg.ProgramName,
					            st.Description AS Statement_Type,
					            COUNT(os.OccurID) AS Expr1,
                                prg.Ancestor,
                                sr.ResourceType
					     FROM StatementReference sr
					          INNER JOIN OccurrencesStmt os ON sr.OccurID = os.OccurID
					          INNER JOIN Resources r ON sr.ResourceID = r.ResourceID 
					          INNER JOIN 
                                        (
								              SELECT p.ProgramID,
								                     p.Ancestor,
								                     pa.AliasName AS ProgramName
								              FROM Programs p
								                   INNER JOIN ProgramAliases pa ON p.ProgramID = pa.ProgramId AND pa.AliasType = 0
								          ) prg ON os.ProgID = prg.ProgramID
					          INNER JOIN Statements st ON sr.StatementType = st.StatementType
					     WHERE sr.ResourceType IN (18, 19)
					           AND  UPPER(r.Name) IN (SELECT UPPER(Param) FROM SESSION.string_param_temp)
					     GROUP BY r.Name, prg.ProgramName, st.Description, prg.Ancestor, sr.ResourceType
					     ORDER BY r.Name, prg.Ancestor, prg.ProgramName; 

				         OPEN crs;
				
                END;
END ss	


